Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
130 lines (108 sloc) 5.5 KB
= Change Log
Below is a complete listing of changes for each revision of HighLine.
== 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 nod 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 <tt>gather = ...</tt> 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
* 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 <tt>choose(item1, item2, ...)</tt> 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 <tt>:columns_across</tt>,
<tt>:columns_down</tt>, <tt>:inline</tt> and <tt>:rows</tt>
* Added support for <tt>echo = "*"</tt> 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
* 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 <tt>:no_completion</tt>.
== 0.5.0
* Implemented <tt>echo = false</tt> 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 <tt>:up</tt>, <tt>:down</tt>, or
* Exposed <tt>@answer</tt> 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 <tt>@wrap_at</tt> and <tt>@page_at</tt> 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 <tt>:strip</tt>,
<tt>:chomp</tt>, <tt>:collapse</tt>, <tt>:strip_and_collapse</tt>,
<tt>:chomp_and_collapse</tt>, <tt>:remove</tt>, or <tt>:none</tt>.
* 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 <tt>@member</tt> into <tt>@in</tt>, 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 <tt>validate = lambda { ... }</tt>.
* 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
* Added Rake tasks for documentation and packaging.
* Moved project to RubyForge.
== 0.1.0
* Initial release as the solution to
{Ruby Quiz #29}[].
Jump to Line
Something went wrong with that request. Please try again.