An open API service indexing awesome lists of open source software.

https://github.com/a6b8/console-hash-array-for-ruby

Console print progress bar for hash arrays.
https://github.com/a6b8/console-hash-array-for-ruby

development hash print ruby

Last synced: over 1 year ago
JSON representation

Console print progress bar for hash arrays.

Awesome Lists containing this project

README

          


Console Hash Array for Ruby

Console print progress bar for hash arrays.




Examples


**Default output without options**
```ruby
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**
```ruby
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](#examples)

1. [Quickstart](#quickstart)

2. [Setup](#setup)
3. [Methods](#methods)

4. [Options](#options)

5. [Contributing](#contributing)

6. [Limitations](#limitations)

7. [License](#license)

8. [Code of Conduct](#code-of-conduct)

9. [Support my Work](#support-my-work)




Quickstart

```ruby
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:

```bash
gem console_hash_array
```

And then execute:
```bash
bundle install console_hash_array
```

Or install it yourself as:
```bash
gem install console_hash_array
```

On Rubygems:
- Gem: https://rubygems.org/gems/console_hash_array
- Profile: https://rubygems.org/profiles/a6b8




Methods

### .example()
```ruby
require 'console_hash_array'

groups = ConsoleHashArray.example()
```
**Return**

Hash

### .console()
```ruby
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](https://github.com/a6b8/console-hash-array-for-ruby/blob/master/CODE_OF_CONDUCT.md).




Limitations

- Build for development usage
- No input validation



Credits



License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).




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](https://github.com/a6b8/console-hash-array-for-ruby/blob/master/CODE_OF_CONDUCT.md).



Star Us

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