All Versions
Latest Version
Avg Release Cycle
143 days
Latest Release
1154 days ago

Changelog History
Page 3

  • v2.0.0-develop.1 Changes

    June 11, 2015

    πŸ”¨ This is the first development version of the 2.0.0 series. It's the begining of a refactoring phase on HighLine development cycle.


    πŸ”¨ In 2014 I emailed James Edward Gray II (@JEG2) about HighLine. One of his ideas was to completely refactor the library so that it could be easier to reuse and improve it. I've began my contributions to HighLine trying to fix some of the open issues at that time so that we could "freeze" a stable version of HighLine that people could rely on. Then I've began to study HighLine source code with James' help and started to refactor some parts of the code. Abinoam P. Marques Jr. (@abinoam)


    • πŸš€ This release differs from current master branch by more than 180 commits.
    • The main changes will be only summarized bellow (as there are many, and a detailed description of each is not productive).
    • πŸ‘€ You could try git log -p to see all of them.
    • βœ… During the last commits, all possible efforts were taken to preserve the tests passing status.
    • βœ… 100% test passing gives you no guarantee that this new version will work for you. This happens for many reasons. One of them is that we don't currently have 100% test coverage.
    • So, this version is not suitable for use in production.
    • Metric_fu and Code Climate were used here not to strictly "guide" what should be changed, but to have some way to objectively measure the progresses made so far.


    • Extracted a lot of smaller methods from bigger ones
    • Extracted smaller classes/modules from bigger ones, so they could be self contained with less external dependencies as possible, for example:
      • HighLine::Statement
      • HighLine::List
      • HighLine::ListRenderer
      • HighLine::TemplateRenderer
      • HighLine::Question::AnswerConverter
      • HighLine::Terminal
      • HighLine::Terminal::UnixStty
      • HighLine::Paginator
      • HighLine::Wrapper
    • πŸ”¨ After extracting each class/module some refactoring were applied to them lowering code complexity


    πŸ‘ Some of the metrics used to track progress are summarized bellow. Some of them have got a lot better as Flay, Flog and Reek, others like Cane haven't (probably because we didn't commented out the new code yet)


    • πŸ‘ GPA: 3.60 -> 3.67 (higher is better)

    CANE - reports code quality threshold violations (lower is better)

    • Total 92 -> 105
      • Methods exceeding allowed Abc complexity: 14 -> 10
      • Lines violating style requirements: 69 -> 72
      • Class definitions requiring comments: 9 -> 23

    FLAY - analyzes ruby code for structural similarities (code duplication - lower is better)

    • Total: 490 -> 94

    FLOG - measures code complexity (lower is better)

    • Top 5% average: 127.9458 -> 40.99812
    • Average: 17.37982 -> 7.663875
    • Total: 2158.5 -> 1969.6

    REEK - detects common code smells in ruby code (lower is better)

    • DuplicateMethodCall: 144 -> 54
    • TooManyStatements: 26 -> 30
  • v1.7.10

    November 24, 2017
  • v1.7.3 Changes

    June 29, 2015
    • βž• Add HighLine::Simulator tests (Bala Paranj (@bparanj) and Abinoam Marques Jr. (@abinoam), #142, PR #143)
  • v1.7.2 Changes

    April 19, 2015

    πŸ› Bug fixes

    • πŸ›  Fix #138 (a regression of #131). PR #139.
  • v1.7.1 Changes

    February 24, 2015

    ✨ 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)
  • v1.7.0 Changes

    February 18, 2015

    πŸ› 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)
    • 0️⃣ 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)
  • v1.6.21 Changes

    • πŸ‘Œ Improved Windows integration (by Ronie Henrich).
    • Clarified menu choice error messages (by Keith Bennett).
  • v1.6.20 Changes

    • πŸ›  Fixed a bug with FFI::NCurses integration (by agentdave).
    • πŸ‘Œ Improved StringExtensions performance (by John Leach).
    • πŸ’Ž Various JRuby fixes (by presidentbeef).
  • v1.6.19 Changes

    • πŸ›  Fixed terminal_size() with jline2 (by presidentbeef).
  • v1.6.18 Changes

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