Skip to content

a6b8/console-hash-array-for-ruby

Repository files navigation

Console Hash Array for Ruby

Console print progress bar for hash arrays.

Examples

Default output without options

require 'console_hash_array'

groups = ConsoleHashArray.example()
groups.keys.each.with_index do | key, rindex |
    ConsoleHashArray.console( groups, rindex, nil, key, :left )
    groups[ key ].each.with_index do | item, cindex |
        ConsoleHashArray.console( groups, rindex, cindex, key, :right )
    end
end

# => 
# [0]  Nurwë                ..............................
# [1]  Legolas              ..............................
# [2]  Primrose Boffin      ..............................
# [3]  Aranuir              .......
# [4]  Ruby Gardner         ..............................
# [5]  Harding              ..............................
# [6]  Írimon               ..............................
# [7]  Torhir Ifant         ..............................
# [8]  Anairë               ..............................
# [9]  Golasgil             ..............................
# [10]  Mîm                 ..............................
# [11]  Tobold Hornblower   ..............
# [12]  Thrór               .....
# [13]  Gerda Boffin        ..............................

Custom output with options

require 'console_hash_array'

groups = ConsoleHashArray.example()

options = { 
    right__boxes_total: 10,
    style__spaces: '.',
    style__steps: '#',
    print__left: "{{rindex}}.{{key}}{{left__spaces}}.."
} 

groups.keys.each.with_index do | key, rindex |
    ConsoleHashArray.console( groups, rindex, nil, key, :left )
    groups[ key ].each.with_index do | item, cindex |
        ConsoleHashArray.console( groups, rindex, cindex, key, :right, options )
    end
end

# => 
# 0. Nurwë                 ####################
# 1. Legolas               ##
# 2. Primrose Boffin       #####
# 3. Aranuir               ###########
# 4. Ruby Gardner          ########
# 5. Harding               ##########
# 6. Írimon                ####################
# 7. Torhir Ifant          ####################
# 8. Anairë                ####
# 9. Golasgil              ####
# 10. Mîm                  
# 11. Tobold Hornblower    #####
# 12. Thrór                ####################
# 13. Gerda Boffin         #####

Table of Contents
  1. Examples
  2. Quickstart
  3. Setup
  4. Methods
  5. Options
  6. Contributing
  7. Limitations
  8. License
  9. Code of Conduct
  10. Support my Work

Quickstart
require 'console_hash_array'

groups = ConsoleHashArray.example()
groups.keys.each.with_index do | key, rindex |
    ConsoleHashArray.console( groups, rindex, nil, key, :left )
    groups[ key ].each.with_index do | item, cindex |
        ConsoleHashArray.console( groups, rindex, cindex, key, :right )
    end
end

Setup

Add this line to your application's Gemfile:

gem console_hash_array

And then execute:

bundle install console_hash_array

Or install it yourself as:

gem install console_hash_array

On Rubygems:


Methods

.example()

require 'console_hash_array'

groups = ConsoleHashArray.example()

Return
Hash

.console()

require 'console_hash_array'

ConsoleHashArray.console( groups, rindex, cindex, key, :left )

Input

Type Required Description
groups Hash of Arrays Yes Full Groups Hash
rindex Int Yes Set row index for calculation and output options.
cindex Int :left = nil, :right = Yes Set column index for calculation and output options.
key String or Symbol Yes Set current key from groups hash.
mode Symbol Yes Use :left for initialization row, :right will update progres line
options Hash No Change default behaviour. See options for more informations.

Return
Hash (p)

Options
Nr Name Key Default Type Description
1 Boxes Total :right__boxes_total 30 Int Set length of progres bar
2 Spaces :style__spaces " " String Set Character of space
3 Steps :style__steps "." String Set Character of steps
4 Print Left :print__left "[{{rindex}}] {{key}} {{left__spaces}} " String Set Structure for :left

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/a6b8/console-hash-array-for-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.


Limitations
  • Build for development usage
  • No input validation

Credits
License

The gem is available as open source under the terms of the MIT License.


Code of Conduct

Everyone interacting in the console-hash-array-for-ruby project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.


Star Us

Please ⭐️ star this Project, every ⭐️ star makes us very happy!

About

Console print progress bar for hash arrays.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published