barcharts 0.1.0
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 +7 -0
- data/CHANGELOG.md +4 -0
- data/Manifest.txt +9 -0
- data/README.md +189 -0
- data/Rakefile +28 -0
- data/lib/barcharts.rb +96 -0
- data/lib/barcharts/version.rb +22 -0
- data/script/test_readme.rb +51 -0
- data/test/helper.rb +7 -0
- data/test/test_barchart.rb +107 -0
- metadata +87 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5393825325d9bc8d34a37947ee8ab0f23fa1a33e
|
4
|
+
data.tar.gz: 5ee63429bba7ad9fbd65e199f6ae263be43083e9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b21fa054fcc843fa93662d54cf2c981aab09f845cfc9933c32009a442418b5cc6b06241a37eace67e5a74573bcb87ca1463fb8e882511930425a673b3101806e
|
7
|
+
data.tar.gz: 639270dc6175fc3e8211d075b7845458ea7e31f370636d857e729c5934c74888f94e2433916701497492f53c2c44d7a6521c2f0651560200d1695c6aa2f0f149
|
data/CHANGELOG.md
ADDED
data/Manifest.txt
ADDED
data/README.md
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
# barcharts gem - print barcharts in your terminal in ascii or with unicode block elements
|
2
|
+
|
3
|
+
* home :: [github.com/feedreader/pluto](https://github.com/feedreader/pluto)
|
4
|
+
* bugs :: [github.com/feedreader/pluto/issues](https://github.com/feedreader/pluto/issues)
|
5
|
+
* gem :: [rubygems.org/gems/barcharts](https://rubygems.org/gems/barcharts)
|
6
|
+
* rdoc :: [rubydoc.info/gems/barcharts](http://rubydoc.info/gems/barcharts)
|
7
|
+
* forum :: [groups.google.com/group/wwwmake](http://groups.google.com/group/wwwmake)
|
8
|
+
|
9
|
+
|
10
|
+
## Usage
|
11
|
+
|
12
|
+
Use the `barchart` method to print barcharts.
|
13
|
+
Let's use the
|
14
|
+
"Q: Where do Rubyists come from / What are the top countries for blogs?"
|
15
|
+
example from the Planet Ruby page:
|
16
|
+
|
17
|
+
``` ruby
|
18
|
+
require 'barchart'
|
19
|
+
|
20
|
+
data = [
|
21
|
+
['Australia', 3],
|
22
|
+
['Austria', 1],
|
23
|
+
['Canada', 1],
|
24
|
+
['Croatia', 1],
|
25
|
+
['India', 1],
|
26
|
+
['Poland', 2],
|
27
|
+
['Spain', 1],
|
28
|
+
['Switzerland', 1],
|
29
|
+
['Ukraine', 1],
|
30
|
+
['United States', 6],
|
31
|
+
]
|
32
|
+
|
33
|
+
# -or-
|
34
|
+
|
35
|
+
data = {
|
36
|
+
'Australia': 3,
|
37
|
+
'Austria': 1,
|
38
|
+
'Canada': 1,
|
39
|
+
'Croatia': 1,
|
40
|
+
'India': 1,
|
41
|
+
'Poland': 2,
|
42
|
+
'Spain': 1,
|
43
|
+
'Switzerland': 1,
|
44
|
+
'Ukraine': 1,
|
45
|
+
'United States': 6,
|
46
|
+
}
|
47
|
+
|
48
|
+
puts barchart( data, title: 'Location', chars: '*' )
|
49
|
+
```
|
50
|
+
|
51
|
+
Resulting in:
|
52
|
+
|
53
|
+
```
|
54
|
+
Location (n=18)
|
55
|
+
---------------------------------
|
56
|
+
Australia (16%) | ******** 3
|
57
|
+
Austria ( 5%) | ** 1
|
58
|
+
Canada ( 5%) | ** 1
|
59
|
+
Croatia ( 5%) | ** 1
|
60
|
+
India ( 5%) | ** 1
|
61
|
+
Poland (11%) | ***** 2
|
62
|
+
Spain ( 5%) | ** 1
|
63
|
+
Switzerland ( 5%) | ** 1
|
64
|
+
Ukraine ( 5%) | ** 1
|
65
|
+
United States (33%) | **************** 6
|
66
|
+
```
|
67
|
+
|
68
|
+
or using Unicode block elements:
|
69
|
+
|
70
|
+
``` ruby
|
71
|
+
puts barchart( data, title: 'Location', chars: '▏▎▍▋▊▉' )
|
72
|
+
```
|
73
|
+
|
74
|
+
Resulting in:
|
75
|
+
|
76
|
+
```
|
77
|
+
Location (n=18)
|
78
|
+
---------------------------------
|
79
|
+
Australia (16%) | ▉▉▉▉▉▉▉▉▍ 3
|
80
|
+
Austria ( 5%) | ▉▉▊ 1
|
81
|
+
Canada ( 5%) | ▉▉▊ 1
|
82
|
+
Croatia ( 5%) | ▉▉▊ 1
|
83
|
+
India ( 5%) | ▉▉▊ 1
|
84
|
+
Poland (11%) | ▉▉▉▉▉▋ 2
|
85
|
+
Spain ( 5%) | ▉▉▊ 1
|
86
|
+
Switzerland ( 5%) | ▉▉▊ 1
|
87
|
+
Ukraine ( 5%) | ▉▉▊ 1
|
88
|
+
United States (33%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▊ 6
|
89
|
+
```
|
90
|
+
|
91
|
+
|
92
|
+
Aside: What are Unicode block elements?
|
93
|
+
|
94
|
+
Unicode among other block elements defines:
|
95
|
+
|
96
|
+
- `▏` - U+258F - Left one eighth block
|
97
|
+
- `▎` - U+258E - Left one quarter block
|
98
|
+
- `▍` - U+258D - Left three eighths block
|
99
|
+
- `▋` - U+258B - Left five eighths block
|
100
|
+
- `▊` - U+258A - Left three quarters block
|
101
|
+
- `▉` - U+2589 - Left seven eighths block
|
102
|
+
|
103
|
+
See [Block Elements @ Wikipedia](https://en.wikipedia.org/wiki/Block_Elements) for more.
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
### Barchart Options - `sort: true|false`, `n: <sample size>`
|
108
|
+
|
109
|
+
Pass in `sort: true` to reverse sort the dataset (highest values first).
|
110
|
+
Let's use the
|
111
|
+
"Q: What (web site) publishing tools are in use?" example:
|
112
|
+
|
113
|
+
``` ruby
|
114
|
+
data = [
|
115
|
+
['Webgen', 1],
|
116
|
+
['Jekyll', 12],
|
117
|
+
['WordPress', 3],
|
118
|
+
['Hugo', 1],
|
119
|
+
['Ghost', 2],
|
120
|
+
['Transistor', 1],
|
121
|
+
['Simplecast', 1],
|
122
|
+
['?', 30],
|
123
|
+
]
|
124
|
+
|
125
|
+
puts barchart( data, title: 'Generators', sort: true )
|
126
|
+
```
|
127
|
+
|
128
|
+
Resulting in:
|
129
|
+
|
130
|
+
```
|
131
|
+
Generators (n=51)
|
132
|
+
---------------------------------
|
133
|
+
? (58%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▍ 30
|
134
|
+
Jekyll (23%) | ▉▉▉▉▉▉▉▉▉▉▉▊ 12
|
135
|
+
WordPress ( 5%) | ▉▉▉ 3
|
136
|
+
Ghost ( 3%) | ▉▉ 2
|
137
|
+
Hugo ( 1%) | ▉ 1
|
138
|
+
Transistor ( 1%) | ▉ 1
|
139
|
+
Simplecast ( 1%) | ▉ 1
|
140
|
+
Webgen ( 1%) | ▉ 1
|
141
|
+
```
|
142
|
+
|
143
|
+
|
144
|
+
Pass in `n: <sample size>` to use a "custom" sample size
|
145
|
+
AND to turn off the auto-calculation of the
|
146
|
+
usage percentage.
|
147
|
+
Let's use the
|
148
|
+
"Q: What are the top topics / words in headlines?" example:
|
149
|
+
|
150
|
+
``` ruby
|
151
|
+
data = [
|
152
|
+
['rails', 13],
|
153
|
+
['ruby', 12],
|
154
|
+
['conferences', 6],
|
155
|
+
['dry', 5],
|
156
|
+
['rom', 4],
|
157
|
+
['ml', 2],
|
158
|
+
]
|
159
|
+
|
160
|
+
puts barchart( data, title: 'Top Words in Headlines 2020', n: 47)
|
161
|
+
```
|
162
|
+
|
163
|
+
resulting in:
|
164
|
+
|
165
|
+
```
|
166
|
+
Top Words in Headlines 2020 (n=47)
|
167
|
+
---------------------------------
|
168
|
+
rails | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▍ 13
|
169
|
+
ruby | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▎ 12
|
170
|
+
conferences | ▉▉▉▉▉▉▉▏ 6
|
171
|
+
dry | ▉▉▉▉▉▉ 5
|
172
|
+
rom | ▉▉▉▉▊ 4
|
173
|
+
ml | ▉▉▍ 2
|
174
|
+
```
|
175
|
+
|
176
|
+
|
177
|
+
That's all for now.
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
## License
|
182
|
+
|
183
|
+
The `barcharts` scripts are dedicated to the public domain.
|
184
|
+
Use it as you please with no restrictions whatsoever.
|
185
|
+
|
186
|
+
## Questions? Comments?
|
187
|
+
|
188
|
+
Send them along to the [wwwmake Forum/Mailing List](http://groups.google.com/group/wwwmake).
|
189
|
+
Thanks!
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'hoe'
|
2
|
+
require './lib/barcharts/version.rb'
|
3
|
+
|
4
|
+
Hoe.spec 'barcharts' do
|
5
|
+
|
6
|
+
self.version = Barcharts::VERSION
|
7
|
+
|
8
|
+
self.summary = "barcharts - print barcharts in your terminal in ascii or with unicode block elements"
|
9
|
+
self.description = summary
|
10
|
+
|
11
|
+
self.urls = ['https://github.com/feedreader/pluto']
|
12
|
+
|
13
|
+
self.author = 'Gerald Bauer'
|
14
|
+
self.email = 'wwwmake@googlegroups.com'
|
15
|
+
|
16
|
+
# switch extension to .markdown for gihub formatting
|
17
|
+
self.readme_file = 'README.md'
|
18
|
+
self.history_file = 'CHANGELOG.md'
|
19
|
+
|
20
|
+
self.extra_deps = []
|
21
|
+
|
22
|
+
self.licenses = ['Public Domain']
|
23
|
+
|
24
|
+
self.spec_extras = {
|
25
|
+
required_ruby_version: '>= 2.2.2'
|
26
|
+
}
|
27
|
+
|
28
|
+
end
|
data/lib/barcharts.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'pp'
|
2
|
+
require 'date'
|
3
|
+
require 'time'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
|
7
|
+
# our own code
|
8
|
+
require 'barcharts/version' # note: let version always go first
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
def bar( value, max_value, max_width: 50, chars: '▏▎▍▋▊▉' )
|
13
|
+
# ▏ - U+258F Left one eighth block
|
14
|
+
# ▎ - U+258E Left one quarter block
|
15
|
+
# ▍ - U+258D Left three eighths block
|
16
|
+
# ▋ - U+258B Left five eighths block
|
17
|
+
# ▊ - U+258A Left three quarters block
|
18
|
+
# ▉ - U+2589 Left seven eighths block
|
19
|
+
#
|
20
|
+
## for unicode block elements see
|
21
|
+
## https://en.wikipedia.org/wiki/Block_Elements
|
22
|
+
|
23
|
+
width = (value*max_width).to_f / max_value ## 50 = max width same as 100%
|
24
|
+
|
25
|
+
buf = chars[-1] * width.floor
|
26
|
+
|
27
|
+
if chars.size > 1 ## check fractional part?
|
28
|
+
frac = width - width.floor # e.g. 12.5405405405405406
|
29
|
+
# becomes 0.5405405405405406
|
30
|
+
buf += chars[ (frac*chars.size).floor ] if frac > 0.0
|
31
|
+
end
|
32
|
+
|
33
|
+
buf
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def barchart( data, title:,
|
38
|
+
sort: nil,
|
39
|
+
n: nil,
|
40
|
+
max_width: nil,
|
41
|
+
chars: nil )
|
42
|
+
|
43
|
+
## note: always convert hash to array
|
44
|
+
## example:
|
45
|
+
## { 'one': 1,
|
46
|
+
## 'two': 2 }
|
47
|
+
## becomes: [[ 'one', 1],
|
48
|
+
## [ 'two', 2]]
|
49
|
+
data = data.to_a if data.is_a?( Hash )
|
50
|
+
|
51
|
+
## convert values to alway be numbers
|
52
|
+
## e.g. support hash as value e.g. { count: 2 } becomes just 2
|
53
|
+
data = data.map do |rec|
|
54
|
+
rec[1] = rec[1][:count] if rec[1].is_a?( Hash )
|
55
|
+
rec
|
56
|
+
end
|
57
|
+
|
58
|
+
if sort
|
59
|
+
data = data.sort_by { |rec| rec[1] }.reverse
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
sum = data.reduce( 0 ) { |sum,rec| sum+rec[1] }
|
65
|
+
max_label = data.reduce( 4 ) { |max,rec| rec[0].size > max ? rec[0].size : max } ## max label length
|
66
|
+
|
67
|
+
n = sum if n.nil? ## no n passed in? use (default to) sum
|
68
|
+
|
69
|
+
bar_opts = { }
|
70
|
+
bar_opts[:max_width] = max_width if max_width
|
71
|
+
bar_opts[:chars ] = chars if chars
|
72
|
+
|
73
|
+
|
74
|
+
buf = "#{title} (n=#{n})\n"
|
75
|
+
buf << "---------------------------------\n"
|
76
|
+
data.each do |rec|
|
77
|
+
label = rec[0]
|
78
|
+
value = rec[1]
|
79
|
+
|
80
|
+
percent = value*100 / sum
|
81
|
+
|
82
|
+
buf << " %-#{max_label}s " % label
|
83
|
+
buf << " (%2d%%)" % percent if n == sum ## only print percent if NOT passed in custom n
|
84
|
+
buf << " | "
|
85
|
+
buf << bar( value, sum, **bar_opts )
|
86
|
+
buf << " %d" % value if value > 0
|
87
|
+
buf << "\n"
|
88
|
+
end
|
89
|
+
|
90
|
+
buf
|
91
|
+
end # method barchart
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
# say hello
|
96
|
+
puts Barcharts.banner if $DEBUG || (defined?($RUBYLIBS_DEBUG) && $RUBYLIBS_DEBUG)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
module Barcharts
|
3
|
+
MAJOR = 0 ## todo: namespace inside version or something - why? why not??
|
4
|
+
MINOR = 1
|
5
|
+
PATCH = 0
|
6
|
+
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
7
|
+
|
8
|
+
def self.version
|
9
|
+
VERSION
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.banner
|
13
|
+
"barcharts/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.root
|
17
|
+
"#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
|
18
|
+
end
|
19
|
+
end # module Barcharts
|
20
|
+
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
###
|
2
|
+
# to run use
|
3
|
+
# ruby -I ./lib script/test_readme.rb
|
4
|
+
|
5
|
+
|
6
|
+
require 'barcharts'
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
data = [
|
11
|
+
['Australia', 3],
|
12
|
+
['Austria', 1],
|
13
|
+
['Canada', 1],
|
14
|
+
['Croatia', 1],
|
15
|
+
['India', 1],
|
16
|
+
['Poland', 2],
|
17
|
+
['Spain', 1],
|
18
|
+
['Switzerland', 1],
|
19
|
+
['Ukraine', 1],
|
20
|
+
['United States', 6],
|
21
|
+
]
|
22
|
+
|
23
|
+
puts barchart( data, title: 'Location', chars: '*' )
|
24
|
+
|
25
|
+
puts barchart( data, title: 'Location', chars: '▏▎▍▋▊▉' )
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
data = [
|
30
|
+
['Webgen', 1],
|
31
|
+
['Jekyll', 12],
|
32
|
+
['WordPress', 3],
|
33
|
+
['Hugo', 1],
|
34
|
+
['Ghost', 2],
|
35
|
+
['Transistor', 1],
|
36
|
+
['Simplecast', 1],
|
37
|
+
['?', 30],
|
38
|
+
]
|
39
|
+
|
40
|
+
puts barchart( data, title: 'Generators', sort: true )
|
41
|
+
|
42
|
+
data = [
|
43
|
+
['rails', 13],
|
44
|
+
['ruby', 12],
|
45
|
+
['conferences', 6],
|
46
|
+
['dry', 5],
|
47
|
+
['rom', 4],
|
48
|
+
['ml', 2],
|
49
|
+
]
|
50
|
+
|
51
|
+
puts barchart( data, title: 'Top Words in Headlines 2020', n: 47)
|
data/test/helper.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
###
|
2
|
+
# to run use
|
3
|
+
# ruby -I ./lib -I ./test test/test_barchart.rb
|
4
|
+
|
5
|
+
|
6
|
+
require 'helper'
|
7
|
+
|
8
|
+
|
9
|
+
class TestBarchart < MiniTest::Test
|
10
|
+
|
11
|
+
def test_array
|
12
|
+
data = [
|
13
|
+
['two', 2],
|
14
|
+
['one', 1],
|
15
|
+
['three', 3],
|
16
|
+
['five', 5],
|
17
|
+
['four', 4],
|
18
|
+
]
|
19
|
+
|
20
|
+
|
21
|
+
assert_equal <<TXT, barchart( data, title: 'Test' )
|
22
|
+
Test (n=15)
|
23
|
+
---------------------------------
|
24
|
+
two (13%) | ▉▉▉▉▉▉▊ 2
|
25
|
+
one ( 6%) | ▉▉▉▍ 1
|
26
|
+
three (20%) | ▉▉▉▉▉▉▉▉▉▉ 3
|
27
|
+
five (33%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▊ 5
|
28
|
+
four (26%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▍ 4
|
29
|
+
TXT
|
30
|
+
|
31
|
+
assert_equal <<TXT, barchart( data, title: 'Test', sort: true )
|
32
|
+
Test (n=15)
|
33
|
+
---------------------------------
|
34
|
+
five (33%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▊ 5
|
35
|
+
four (26%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▍ 4
|
36
|
+
three (20%) | ▉▉▉▉▉▉▉▉▉▉ 3
|
37
|
+
two (13%) | ▉▉▉▉▉▉▊ 2
|
38
|
+
one ( 6%) | ▉▉▉▍ 1
|
39
|
+
TXT
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def test_hash
|
44
|
+
data = {
|
45
|
+
'two': 2,
|
46
|
+
'one': 1,
|
47
|
+
'three three': 3,
|
48
|
+
'five': 5,
|
49
|
+
'four': 4,
|
50
|
+
}
|
51
|
+
|
52
|
+
assert_equal <<TXT, barchart( data, title: 'Test' )
|
53
|
+
Test (n=15)
|
54
|
+
---------------------------------
|
55
|
+
two (13%) | ▉▉▉▉▉▉▊ 2
|
56
|
+
one ( 6%) | ▉▉▉▍ 1
|
57
|
+
three three (20%) | ▉▉▉▉▉▉▉▉▉▉ 3
|
58
|
+
five (33%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▊ 5
|
59
|
+
four (26%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▍ 4
|
60
|
+
TXT
|
61
|
+
|
62
|
+
assert_equal <<TXT, barchart( data, title: 'Test', sort: true )
|
63
|
+
Test (n=15)
|
64
|
+
---------------------------------
|
65
|
+
five (33%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▊ 5
|
66
|
+
four (26%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▍ 4
|
67
|
+
three three (20%) | ▉▉▉▉▉▉▉▉▉▉ 3
|
68
|
+
two (13%) | ▉▉▉▉▉▉▊ 2
|
69
|
+
one ( 6%) | ▉▉▉▍ 1
|
70
|
+
TXT
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_hash_count
|
74
|
+
data = {
|
75
|
+
'two': { count: 22 },
|
76
|
+
'one': { count: 1 },
|
77
|
+
'three': { count: 3 },
|
78
|
+
'five': { count: 55 },
|
79
|
+
'four': { count: 44 },
|
80
|
+
}
|
81
|
+
|
82
|
+
puts barchart( data, title: 'Test' )
|
83
|
+
puts barchart( data, title: 'Test', sort: true )
|
84
|
+
|
85
|
+
assert_equal <<TXT, barchart( data, title: 'Test' )
|
86
|
+
Test (n=125)
|
87
|
+
---------------------------------
|
88
|
+
two (17%) | ▉▉▉▉▉▉▉▉▊ 22
|
89
|
+
one ( 0%) | ▍ 1
|
90
|
+
three ( 2%) | ▉▎ 3
|
91
|
+
five (44%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 55
|
92
|
+
four (35%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▋ 44
|
93
|
+
TXT
|
94
|
+
|
95
|
+
assert_equal <<TXT, barchart( data, title: 'Test', sort: true )
|
96
|
+
Test (n=125)
|
97
|
+
---------------------------------
|
98
|
+
five (44%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 55
|
99
|
+
four (35%) | ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▋ 44
|
100
|
+
two (17%) | ▉▉▉▉▉▉▉▉▊ 22
|
101
|
+
three ( 2%) | ▉▎ 3
|
102
|
+
one ( 0%) | ▍ 1
|
103
|
+
TXT
|
104
|
+
end
|
105
|
+
|
106
|
+
end # class TestBarchart
|
107
|
+
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: barcharts
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gerald Bauer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-03-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rdoc
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: hoe
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.16'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.16'
|
41
|
+
description: barcharts - print barcharts in your terminal in ascii or with unicode
|
42
|
+
block elements
|
43
|
+
email: wwwmake@googlegroups.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files:
|
47
|
+
- CHANGELOG.md
|
48
|
+
- Manifest.txt
|
49
|
+
- README.md
|
50
|
+
files:
|
51
|
+
- CHANGELOG.md
|
52
|
+
- Manifest.txt
|
53
|
+
- README.md
|
54
|
+
- Rakefile
|
55
|
+
- lib/barcharts.rb
|
56
|
+
- lib/barcharts/version.rb
|
57
|
+
- script/test_readme.rb
|
58
|
+
- test/helper.rb
|
59
|
+
- test/test_barchart.rb
|
60
|
+
homepage: https://github.com/feedreader/pluto
|
61
|
+
licenses:
|
62
|
+
- Public Domain
|
63
|
+
metadata: {}
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options:
|
66
|
+
- "--main"
|
67
|
+
- README.md
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 2.2.2
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 2.5.2
|
83
|
+
signing_key:
|
84
|
+
specification_version: 4
|
85
|
+
summary: barcharts - print barcharts in your terminal in ascii or with unicode block
|
86
|
+
elements
|
87
|
+
test_files: []
|