Change Log¶ ↑
Below is a complete listing of changes for each revision of HighLine.
1.7.8 / 2015-10-09¶ ↑
-
Fix some issues when paginating. (Nick Carboni (@carbonin) and Abinoam P. Marques Jr. (@abinoam), #168, PRs #169 #170)
1.7.7 / 2015-09-22¶ ↑
-
Make HighLine::Question coerce its question argument into a String. (@97-109-107 and Abinoam P. Marques Jr. (@abinoam), #159, PR #160)
1.7.6 / 2015-09-17¶ ↑
-
Fix a typo in a var name affecting solaris. (Danek Duvall (@dhduvall) and Abinoam P. Marques Jr. (@abinoam), #155, PR #156)
1.7.5 / 2015-09-14¶ ↑
-
Support jruby9k for system extensions (Michael (@mmmries), PR #153)
1.7.4 / 2015-06-16¶ ↑
-
Workaround on #55 for stty
1.7.3 / 2015-06-29¶ ↑
-
Add HighLine::Simulator tests (Bala Paranj (@bparanj) and Abinoam Marques Jr. (@abinoam), #142, PR #143)
1.7.2 / 2015-04-19¶ ↑
Bug fixes¶ ↑
-
Fix #138 (a regression of #131). PR #139.
1.7.1 / 2015-02-24¶ ↑
Enhancements¶ ↑
-
Add travis CI configuration (Eli Young (@elyscape), #130)
-
Add Rubinius to Build Matrix with Allowed Failure (Brandon Fish (bjfish), #132)
-
Make some adjustments on tests (Abinoam Marques Jr., #133, #134)
-
Drop support for Ruby 1.8 (Abinoam Marques Jr., #134)
Bug fixes¶ ↑
-
Fix IO.console.winsize returning reversed column and line values (Fission Xuiptz (@fissionxuiptz)), #131)
1.7.0 / 2015-02-18¶ ↑
Bug fixes¶ ↑
-
Fix correct encoding of statements to output encoding (Dāvis (davispuh), #110)
-
Fix character echoing when echo is false and multibyte character is typed (Abinoam Marques Jr., #117 #118)
-
Fix backspace support on Cyrillic (Abinoam Marques Jr., #115 #118)
-
Fix returning wrong encoding when echo is false (Abinoam Marques Jr., #116 #118)
-
Fix Question limit and realine incompatibilities (Abinoam Marques Jr. #113 #120)
-
Fix/improve string coercion on say (Abinoam Marques Jr., #98 #122)
-
Fix terminal_size returning nil in some terminals (Abinoam Marques Jr., #85 #123)
Enhancements¶ ↑
-
Improve format_statement String coercion (Michael Bishop (michaeljbishop), #104)
-
Update homepage url on gemspec (Rubyforge->GitHub) (Edward Anderson (nilbus), #107)
-
Update COPYING file (Vít Ondruch (voxik), #109)
-
Improve multi-byte encoding support (Abinoam Marques Jr., #115 #116 #117 #118)
-
Make :grey -> :gray and :light -> :bright aliases (Abinoam Marques Jr., #114 #119)
-
Return the default object (as it is) when no answer given (Abinoam Marques Jr., #112 #121)
-
Added test for Yaml serialization of HighLine::String (Abinoam Marques Jr., #69 #124)
-
Make improvements on Changelog and Rakefile (Abinoam Marques Jr., #126 #127 #128)
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 setgather
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 totrue
, 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.
-
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¶ ↑
-
Initial release as the solution to Ruby Quiz #29.