CHANGELOG

Path: CHANGELOG
Last Update: Wed Feb 25 20:41:14 -0700 2009

Change Log

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

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]