CHANGELOG

Path: CHANGELOG
Last Update: Tue Sep 23 08:14:02 +0200 2014

Change Log

Below is a complete listing of changes for each revision of HighLine.

1.6.21

  • Improved Windows integration (by Ronie Henrich).
  • Clarified menu choice error messages (by Keith Bennett).

1.6.20

  • Fixed a bug with FFI::NCurses integration (by agentdave).
  • Improved StringExtensions performance (by John Leach).
  • Various JRuby fixes (by presidentbeef).

1.6.19

  • Fixed `terminal_size()` with jline2 (by presidentbeef).

1.6.18

  • Fixed a long supported interface that was accidentally broken with a recent change (by Rubem Nakamura Carneiro).

1.6.17

  • Added encoding support to menus (by David Lyons).
  • Some minor fixes to SystemExtensions (by whiteleaf and presidentbeef).

1.6.16

  • Added the new indention feature (by davispuh).
  • Separated auto-completion from the answer type (by davispuh).
  • Improved JRuby support (by rsutphin).
  • General code clean up (by stomar).
  • Made HighLine#say() a little smarter with regard to color escapes (by Kenneth Murphy).

1.6.15

  • Added support for nil arguments in lists (by Eric Saxby).
  • Fixed HighLine‘s termios integration (by Jens Wille).

1.6.14

  • Added JRuby 1.7 support (by Mina Nagy).
  • Take into account color escape sequences when wrapping text (by Mark J. Titorenko).

1.6.13

  • Removed unneeded Shebang lines (by Scott Gonyea).
  • Protect the String passed to Question.new from modification (by michael).
  • Added a retype-to-verify setting (by michael).

1.6.12

  • Silenced warnings (by James McEwan).

1.6.11

  • Fixed a bad test. (Fix by Diego Elio Pettenò.)

1.6.10

  • Fixed a regression that prevented asking for String arguments (by Jeffery Sman.)
  • Fixed a testing incompatibility (by Hans de Graaff.)

1.6.9

  • The new list modes now properly ignore escapes when sizing.
  • Added a project gemspec file.
  • Fixed a bug that prevented the use of termios (by tomdz).
  • Switch to JLine to provide better echo support on JRuby (by tomdz).

1.6.8

  • Fix missing ERASE_CHAR reference (by Aaron Gifford).

1.6.7

  • Fixed bug introduced in 1.6.6 attempted fix (by Aaron Gifford).

1.6.6

  • Fixed old style references causing HighLine::String errors (by Aaron Gifford).

1.6.5

  • HighLine#list() now correctly handles empty lists (fix by Lachlan Dowding).
  • HighLine#list() now supports :uneven_columns_across and :uneven_columns_down modes.

1.6.4

  • Add introspection methods to color_scheme: definition, keys, to_hash.
  • Add tests for new methods.

1.6.3

  • Add color NONE.
  • Add RGB color capability.
  • Made ‘color’ available as a class or instance method of HighLine, for instance: HighLine.color("foo", :blue)) or highline_obj.color("foo", :blue) are now both possible and equivalent.
  • Add HighLine::String class with convenience methods: color (alias foreground), on (alias background), colors, and styles. See lib/string_extensions.rb.
  • Add (optional) ability to extend String with the same convenience methods from HighLine::String, using Highline.colorize_strings.

1.6.2

  • Correctly handle STDIN being closed before we receive any data (fix by mleinart).
  • Try if msvcrt, if we can‘t load crtdll on Windows (fix by pepijnve).
  • A fix for nil_on_handled not running the action (reported by Andrew Davey).

1.6.1

  • Fixed raw_no_echo_mode so that it uses stty -icanon rather than cbreak as cbreak does not appear to be the posixly correct argument. It fails on Solaris if cbreak is used.
  • Fixed an issue that kept Menu from showing the correct choices for disambiguation.
  • Removed a circular require that kept Ruby 1.9.2 from loading HighLine.
  • Fixed a bug that caused infinite looping when wrapping text without spaces.
  • Fixed it so that :auto paging accounts for the two lines it adds.
  • On JRuby, improved error message about ffi-ncurses. Before 1.5.3, HighLine was silently swallowing error messages when ffi-ncurses gem was installed without ncurses present on the system.
  • Reverted Aaron Simmons‘s patch to allow redirecting STDIN on Windows. This is the only way we could find to restore HighLine‘s character reading to working order.

1.5.2

  • Added support for using the ffi-ncurses gem which is supported in JRuby.
  • Added gem build instructions.

1.5.1

  • Fixed the long standing echo true bug. (reported by Lauri Tuominen)
  • Improved Windows API calls to support the redirection of STDIN. (patch by Aaron Simmons)
  • Updated gem specification to avoid a deprecated call.
  • Made a minor documentation clarification about character mode support.
  • Worked around some API changes in Ruby‘s standard library in Ruby 1.9. (patch by Jake Benilov)

1.5.0

  • Fixed a bug that would prevent Readline from showing all completions. (reported by Yaohan Chen)
  • Added the ability to pass a block to HighLine#agree(). (patch by Yaohan Chen)

1.4.0

  • Made the code grabbing terminal size a little more cross-platform by adding support for Solaris. (patch by Ronald Braswell and Coey Minear)

1.2.9

  • Additional work on the backspacing issue. (patch by Jeremy Hinegardner)
  • Fixed Readline prompt bug. (patch by Jeremy Hinegardner)

1.2.8

  • Fixed backspacing past the prompt and interrupting a prompt bugs. (patch by Jeremy Hinegardner)

1.2.7

  • Fixed the stty indent bug.
  • Fixed the echo backspace bug.
  • Added HighLine::track_eof=() setting to work are threaded eof?() calls.

1.2.6

Patch by Jeremy Hinegardner:

  • Added ColorScheme support.
  • Added HighLine::Question.overwrite mode.
  • Various documentation fixes.

1.2.5

  • Really fixed the bug I tried to fix in 1.2.4.

1.2.4

  • Fixed a crash causing bug when using menus, reported by Patrick Hof.

1.2.3

  • Treat Cygwin like a Posix OS, instead of a native Windows environment.

1.2.2

  • Minor documentation corrections.
  • Applied Thomas Werschleiln‘s patch to fix termio buffering on Solaris.
  • Applied Justin Bailey‘s patch to allow canceling paged output.
  • Fixed a documentation bug in the description of character case settings.
  • Added a notice about termios in HighLine::Question#echo.
  • Finally working around the infamous "fast typing" bug

1.2.1

  • Applied Justin Bailey‘s fix for the page_print() infinite loop bug.
  • Made a SystemExtensions module to expose OS level functionality other libraries may want to access.
  • Publicly exposed the get_character() method, per user requests.
  • Added terminal_size(), output_cols(), and output_rows() methods.
  • Added :auto setting for warp_at=() and page_at=().

1.2.0

  • Improved RubyForge and gem spec project descriptions.
  • Added basic examples to README.
  • Added a VERSION constant.
  • Added support for hidden menu commands.
  • Added Object.or_ask() when using highline/import.

1.0.4

  • Moved the HighLine project to Subversion.
  • HighLine‘s color escapes can now be disabled.
  • Fixed EOF bug introduced in the last release.
  • Updated HighLine web page.
  • Moved to a forked development/stable version numbering.

1.0.2

  • Removed old and broken help tests.
  • Fixed test case typo found by David A. Black.
  • Added ERb escapes processing to lists, for coloring list items. Color escapes do not add to list element size.
  • HighLine now throws EOFError when input is exhausted.

1.0.1

  • Minor bug fix: Moved help initialization to before response building, so help would show up in the default responses.

1.0.0

  • Fixed documentation typo pointed out by Gavin Kistner.
  • Added gather = … option to question for fetching entire Arrays or Hashes filled with answers. You can set gather to a count of answers to collect, a String or Regexp matching the end of input, or a Hash where each key can be used in a new question.
  • Added File support to HighLine.ask(). You can specify a directory and a glob pattern that combine into a list of file choices the user can select from. You can choose to receive the user‘s answer as an open filehandle or as a Pathname object.
  • Added Readline support for history and editing.
  • Added tab completion for menu and file selection selection (requires Readline).
  • Added an optional character limit for input.
  • Added a complete help system to HighLine‘s shell menu creation tools.

0.6.1

  • Removed termios dependancy in gem, to fix Windows’ install.

0.6.0

  • Implemented HighLine.choose() for menu handling.
    • Provided shortcut choose(item1, item2, …) for simple menus.
    • Allowed Ruby code to be attached to each menu item, to create a complete menu solution.
    • Provided for total customization of the menu layout.
    • Allowed for menu selection by index, name or both.
    • Added a shell mode to allow menu selection with additional details following the name.
  • Added a list() utility method that can be invoked just like color(). It can layout Arrays for you in any output in the modes :columns_across, :columns_down, :inline and :rows
  • Added support for echo = "*" style settings. User code can now choose the echo character this way.
  • Modified HighLine to user the "termios" library for character input, if available. Will return to old behavior (using "stty"), if "termios" cannot be loaded.
  • Improved "stty" state restoring code.
  • Fixed "stty" code to handle interrupt signals.
  • Improved the default auto-complete error message and exposed this message through the responses interface as :no_completion.

0.5.0

  • Implemented echo = false for HighLine::Question objects, primarily to make fetching passwords trivial.
  • Fixed an auto-complete bug that could cause a crash when the user gave an answer that didn‘t complete to any valid choice.
  • Implemented case for HighLine::Question objects to provide character case conversions on given answers. Can be set to :up, :down, or :capitalize.
  • Exposed @answer to the response system, to allow response that are aware of incorrect input.
  • Implemented confirm for HighLine::Question objects to allow for verification for sensitive user choices. If set to true, user will have to answer an "Are you sure? " question. Can also be set to the question to confirm with the user.

0.4.0

  • Added @wrap_at and @page_at settings and accessors to HighLine, to control text flow.
  • Implemented line wrapping with adjustable limit.
  • Implemented paged printing with adjustable limit.

0.3.0

  • Added support for installing with setup.rb.
  • All output is now treated as an ERb sequence, allowing Ruby code to be embedded in output strings.
  • Added support for ANSI color sequences in say(). (And everything else by extension.)
  • Added whitespace handling for answers. Can be set to :strip, :chomp, :collapse, :strip_and_collapse, :chomp_and_collapse, :remove, or :none.
  • Exposed question details to ERb completion through @question, to allow for intelligent responses.
  • Simplified HighLine internals using @question.
  • Added support for fetching single character input either with getc() or HighLine‘s own cross-platform terminal input routine.
  • Improved type conversion to handle user defined classes.

0.2.0

  • Added Unit Tests to cover an already fixed output bug in the future.
  • Added Rakefile and setup test action (default).
  • Renamed HighLine::Answer to HighLine::Question to better illustrate its role.
  • Renamed fetch_line() to get_response() to better define its goal.
  • Simplified explain_error in terms of the Question object.
  • Renamed accept?() to in_range?() to better define purpose.
  • Reworked valid?() into valid_answer?() to better fit Question object.
  • Reworked @member into @in, to make it easier to remember and switched implementation to include?().
  • Added range checks for @above and @below.
  • Fixed the bug causing ask() to swallow NoMethodErrors.
  • Rolled ask_on_error() into responses.
  • Redirected imports to Kernel from Object.
  • Added support for validate = lambda { … }.
  • Added default answer support.
  • Fixed bug that caused ask() to die with an empty question.
  • Added complete documentation.
  • Improve the implemetation of agree() to be the intended "yes" or "no" only question.
  • Added Rake tasks for documentation and packaging.
  • Moved project to RubyForge.

0.1.0

[Validate]