console_hash_array 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc49e54b0384ab7ea8ab265636b04d6a74bd66d17efb8118c5c862db7068c831
4
- data.tar.gz: 4e8776dc9d50d8418e0b0c7fe7c675d6204f2dab2689ed25ad8d24568891eb89
3
+ metadata.gz: 17b06d5e106a8b5c94f77587a604da743935843e8dce07fda2b2860134f39564
4
+ data.tar.gz: 195ea5d0c40ac17bebb8ad678555b68aae272064302f85ac968c1df7cf03b716
5
5
  SHA512:
6
- metadata.gz: e762a80d5a26a702b787b0c5d5dd4a64df220e400351ee1b7af8e1501e0ba7b4116712b96249b91f1dc9b1a165358d1597424fa2cb384ae63c08fe303c4beeb5
7
- data.tar.gz: 1412b4fd09db7c3565ad7974a66fc484f6b66ee8f8940c5a3999aee3615ca5578c10c5689d2578f314237fcda633360612af2aea59aa9f3c000abe65d1f4cc5d
6
+ metadata.gz: a75a7d97d5dad5b491e7eec96a2a1921ea5cc302ac33cbb2de28bb330f6878f506ff13a0069811ed8204ef0038e1119fec2ea170bbe2330df0f77b282cc7761d
7
+ data.tar.gz: 57ddd01d85e2c8086f6ece2859fed25f4c2d0972e9f0c75568c81976dbc86ad3365807eedb8fa27f46dd1d21bc0b4298c89137634257b2c7a8b28d2378f11952
data/README.md CHANGED
@@ -2,44 +2,45 @@
2
2
  <img src="https://raw.githubusercontent.com/a6b8/a6b8/main/docs/console-hash-array-for-ruby/readme/headlines/Headline.svg" height="55px" name="Console Hash Array" alt="# Console Hash Array">
3
3
  </a>
4
4
 
5
- Helper to print progress bar for hash array with long processes.
5
+ Console print progress bar for hash arrays.
6
6
  <br>
7
7
  <br>
8
8
  <br>
9
9
  <a href="#table-of-contents">
10
- <img src="https://raw.githubusercontent.com/a6b8/a6b8/main/docs/console-hash-array-for-ruby/readme/headlines/examples.svg" height="55px" name="examples" alt="Examples">
10
+ <img src="https://raw.githubusercontent.com/a6b8/a6b8/main/docs/console-hash-array-for-ruby/readme/headlines/examples.svg" height="55px" name="example" alt="Example">
11
11
  </a>
12
12
  <br>
13
- <br>
13
+
14
14
  ```ruby
15
15
  require 'console_hash_array'
16
16
 
17
17
  groups = ConsoleHashArray.example()
18
18
  groups.keys.each.with_index do | key, rindex |
19
- p = ConsoleHashArray.console( nil, groups, rindex, nil, key, :left, {} )
19
+ ConsoleHashArray.console( groups, rindex, nil, key, :left )
20
20
  groups[ key ].each.with_index do | item, cindex |
21
- p = ConsoleHashArray.console( p, groups, rindex, cindex, key, :right, {} )
21
+ ConsoleHashArray.console( groups, rindex, cindex, key, :right )
22
22
  end
23
- puts
24
23
  end
25
24
 
26
- #=>
27
- [0] Nurwë ..............................
28
- [1] Legolas ..............................
29
- [2] Primrose Boffin ..............................
30
- [3] Aranuir .......
31
- [4] Ruby Gardner ..............................
32
- [5] Harding ..............................
33
- [6] Írimon ..............................
34
- [7] Torhir Ifant ..............................
35
- [8] Anairë ..............................
36
- [9] Golasgil ..............................
37
- [10] Mîm ..............................
38
- [11] Tobold Hornblower ..............
39
- [12] Thrór .....
40
- [13] Gerda Boffin ..............................
25
+ # =>
26
+ # [0] Nurwë ..............................
27
+ # [1] Legolas ..............................
28
+ # [2] Primrose Boffin ..............................
29
+ # [3] Aranuir .......
30
+ # [4] Ruby Gardner ..............................
31
+ # [5] Harding ..............................
32
+ # [6] Írimon ..............................
33
+ # [7] Torhir Ifant ..............................
34
+ # [8] Anairë ..............................
35
+ # [9] Golasgil ..............................
36
+ # [10] Mîm ..............................
37
+ # [11] Tobold Hornblower ..............
38
+ # [12] Thrór .....
39
+ # [13] Gerda Boffin ..............................
41
40
 
42
41
  ```
42
+ <br>
43
+ <br>
43
44
 
44
45
  <a href="#table-of-contents">
45
46
  <img src="https://raw.githubusercontent.com/a6b8/a6b8/main/docs/console-hash-array-for-ruby/readme/headlines/table-of-contents.svg" height="55px" name="table-of-contents" alt="Table of Contents">
@@ -66,11 +67,10 @@ require 'console_hash_array'
66
67
 
67
68
  groups = ConsoleHashArray.example()
68
69
  groups.keys.each.with_index do | key, rindex |
69
- p = ConsoleHashArray.console( nil, groups, rindex, nil, key, :left, {} )
70
+ ConsoleHashArray.console( groups, rindex, nil, key, :left )
70
71
  groups[ key ].each.with_index do | item, cindex |
71
- p = ConsoleHashArray.console( p, groups, rindex, cindex, key, :right, {} )
72
+ ConsoleHashArray.console( groups, rindex, cindex, key, :right )
72
73
  end
73
- puts
74
74
  end
75
75
  ```
76
76
  <br>
@@ -81,18 +81,19 @@ end
81
81
 
82
82
  Add this line to your application's Gemfile:
83
83
 
84
- ```ruby
85
- gem 'console_hash_array'
84
+ ```bash
85
+ gem console_hash_array
86
86
  ```
87
87
 
88
88
  And then execute:
89
-
90
- $ bundle install
89
+ ```bash
90
+ bundle install console_hash_array
91
+ ```
91
92
 
92
93
  Or install it yourself as:
93
-
94
- $ gem install test
95
-
94
+ ```bash
95
+ gem install console_hash_array
96
+ ```
96
97
 
97
98
  On Rubygems:
98
99
  - Gem: https://rubygems.org/gems/console_hash_array
@@ -118,14 +119,13 @@ Hash
118
119
  ```ruby
119
120
  require 'console_hash_array'
120
121
 
121
- p = ConsoleHashArray.console( nil, groups, rindex, cindex, key, :left, {} )
122
+ ConsoleHashArray.console( groups, rindex, cindex, key, :left )
122
123
  ```
123
124
 
124
125
 
125
126
  **Input**
126
127
  | | **Type** | **Required** | **Description** |
127
128
  |------:|:------|:------|:------|
128
- | **p** | ```Hash``` | :left = nil, :right = Yes | Parameters for console |
129
129
  | **groups** | ```Hash of Arrays``` | Yes | Full Groups Hash |
130
130
  | **rindex** | ```Int``` | Yes | Set row index for calculation and output options. |
131
131
  | **cindex** | ```Int``` | :left = nil, :right = Yes | Set column index for calculation and output options. |
@@ -165,6 +165,7 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/a6b8/c
165
165
  - No input validation
166
166
  <br>
167
167
  <br>
168
+
168
169
  <a href="#table-of-contents">
169
170
  <img src="https://raw.githubusercontent.com/a6b8/a6b8/main/docs/console-hash-array-for-ruby/readme/headlines/license.svg" height="55px" name="license" alt="License">
170
171
  </a>
Binary file
@@ -5,9 +5,34 @@ require_relative "console_hash_array/version"
5
5
  module ConsoleHashArray
6
6
  class Error < StandardError; end
7
7
 
8
- def self.console( p, arr, rindex, cindex, key, mode, options={} )
8
+ @TEMPLATE = {
9
+ print: {
10
+ left: '[{{rindex}}] {{key}} {{left__spaces}} '
11
+ },
12
+ style: {
13
+ spaces: ' ',
14
+ steps: '.'
15
+ },
16
+ left: {
17
+ max: nil,
18
+ spaces: nil
19
+ },
20
+ right: {
21
+ boxes_total: 30,
22
+ box_current: nil,
23
+ box: nil,
24
+ boxes: nil,
25
+ length_max: nil,
26
+ mark: nil
27
+ }
28
+ }
29
+
30
+ @p = {}
31
+
32
+ def self.console( arr, rindex, cindex, key, mode, options={} )
9
33
  def self.options_insert( p, arr, rindex, cindex, key, mode, options )
10
- if !options.keys.include?( :print__left )
34
+
35
+ if !options .keys.include?( :print__left )
11
36
  options[:print__left] = p[:print][:left]
12
37
  end
13
38
 
@@ -79,31 +104,10 @@ module ConsoleHashArray
79
104
  return [ p, errors ]
80
105
  end
81
106
 
82
-
107
+ p = {}
83
108
  case mode
84
109
  when :left
85
- p = {
86
- print: {
87
- left: '[{{rindex}}] {{key}} {{left__spaces}} '
88
- },
89
- style: {
90
- spaces: ' ',
91
- steps: '.'
92
- },
93
- left: {
94
- max: nil,
95
- spaces: nil
96
- },
97
- right: {
98
- boxes_total: 30,
99
- box_current: nil,
100
- box: nil,
101
- boxes: nil,
102
- length_max: nil,
103
- mark: nil
104
- }
105
- }
106
-
110
+ p = Marshal.load( Marshal.dump( @TEMPLATE ) )
107
111
  errors = []
108
112
  messages = []
109
113
  p, errors = self.options_insert( p, arr, rindex, cindex, key, mode, options )
@@ -130,13 +134,18 @@ module ConsoleHashArray
130
134
  end
131
135
 
132
136
  print( p[:print][:left] )
137
+
138
+ if arr[ key ].length == 0
139
+ puts
140
+ end
133
141
  when :right
142
+ p = @p
134
143
  if !p[:right][:boxes].find_index( cindex ).nil? and p[:right][:boxes].find_index( cindex ) != p[:right][:box_current]
135
144
  box_new = p[:right][:boxes].find_index( cindex )
136
145
 
137
146
  ( box_new - p[:right][:box_current] ).times.each do | a |
138
147
  if p[:right][:mark] < p[:right][:boxes_total]
139
- print( p[:style][:steps] )
148
+ print( p[:style][:steps] )
140
149
  end
141
150
  p[:right][:mark] = p[:right][:mark] + 1
142
151
  end
@@ -144,15 +153,19 @@ module ConsoleHashArray
144
153
  p[:right][:box_current] = box_new
145
154
  end
146
155
 
147
- if cindex == arr[ key ].length-1 and p[:right][:mark] != arr[ key ].length-1
148
- c = p[:right][:boxes_total] - p[:right][:mark]
149
- c > ( arr[ key ].length-1 ) ? c = arr[ key ].length-1 : ''
150
- c.times.each do | a |
156
+ if cindex == arr[ key ].length-1
157
+ if p[:right][:mark] != arr[ key ].length-1
158
+ c = p[:right][:boxes_total] - p[:right][:mark]
159
+ c > ( arr[ key ].length-1 ) ? c = arr[ key ].length-1 : ''
160
+ c.times.each do | a |
151
161
  print( p[:style][:steps] )
162
+ end
152
163
  end
164
+ puts
153
165
  end
154
166
  else
155
167
  end
168
+ @p = p
156
169
 
157
170
  return p
158
171
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ConsoleHashArray
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: console_hash_array
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - a6b8
@@ -27,6 +27,7 @@ files:
27
27
  - Rakefile
28
28
  - bin/console
29
29
  - bin/setup
30
+ - console_hash_array-0.1.0.gem
30
31
  - console_hash_array.gemspec
31
32
  - lib/console_hash_array.rb
32
33
  - lib/console_hash_array/version.rb