gruff 0.7.0-java → 0.8.0-java
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 +5 -5
- data/.editorconfig +14 -0
- data/.rubocop.yml +16 -0
- data/.rubocop_todo.yml +923 -0
- data/.travis.yml +21 -14
- data/{History.txt → CHANGELOG.md} +32 -25
- data/README.md +3 -2
- data/Rakefile +27 -18
- data/assets/bubble.png +0 -0
- data/assets/city_scene/background/0000.png +0 -0
- data/assets/city_scene/background/0600.png +0 -0
- data/assets/city_scene/background/2000.png +0 -0
- data/assets/city_scene/clouds/cloudy.png +0 -0
- data/assets/city_scene/clouds/partly_cloudy.png +0 -0
- data/assets/city_scene/clouds/stormy.png +0 -0
- data/assets/city_scene/grass/default.png +0 -0
- data/assets/city_scene/haze/true.png +0 -0
- data/assets/city_scene/number_sample/1.png +0 -0
- data/assets/city_scene/number_sample/2.png +0 -0
- data/assets/city_scene/number_sample/default.png +0 -0
- data/assets/city_scene/sky/0000.png +0 -0
- data/assets/city_scene/sky/0200.png +0 -0
- data/assets/city_scene/sky/0400.png +0 -0
- data/assets/city_scene/sky/0600.png +0 -0
- data/assets/city_scene/sky/0800.png +0 -0
- data/assets/city_scene/sky/1000.png +0 -0
- data/assets/city_scene/sky/1200.png +0 -0
- data/assets/city_scene/sky/1400.png +0 -0
- data/assets/city_scene/sky/1500.png +0 -0
- data/assets/city_scene/sky/1700.png +0 -0
- data/assets/city_scene/sky/2000.png +0 -0
- data/assets/pc306715.jpg +0 -0
- data/assets/plastik/blue.png +0 -0
- data/assets/plastik/green.png +0 -0
- data/assets/plastik/red.png +0 -0
- data/gruff.gemspec +12 -10
- data/lib/gruff.rb +2 -2
- data/lib/gruff/accumulator_bar.rb +2 -2
- data/lib/gruff/area.rb +1 -4
- data/lib/gruff/bar.rb +12 -13
- data/lib/gruff/bar_conversion.rb +11 -11
- data/lib/gruff/base.rb +36 -36
- data/lib/gruff/bezier.rb +1 -2
- data/lib/gruff/bullet.rb +7 -10
- data/lib/gruff/deprecated.rb +10 -11
- data/lib/gruff/dot.rb +3 -4
- data/lib/gruff/line.rb +13 -14
- data/lib/gruff/mini/bar.rb +3 -3
- data/lib/gruff/mini/legend.rb +7 -8
- data/lib/gruff/mini/pie.rb +6 -6
- data/lib/gruff/mini/side_bar.rb +7 -7
- data/lib/gruff/net.rb +2 -8
- data/lib/gruff/photo_bar.rb +9 -12
- data/lib/gruff/pie.rb +6 -6
- data/lib/gruff/scatter.rb +47 -51
- data/lib/gruff/scene.rb +17 -19
- data/lib/gruff/side_bar.rb +5 -8
- data/lib/gruff/side_stacked_bar.rb +24 -26
- data/lib/gruff/spider.rb +14 -15
- data/lib/gruff/stacked_area.rb +12 -16
- data/lib/gruff/stacked_bar.rb +50 -52
- data/lib/gruff/stacked_mixin.rb +2 -3
- data/lib/gruff/themes.rb +32 -33
- data/lib/gruff/version.rb +1 -1
- metadata +15 -72
- data/RELEASE.md +0 -30
- data/test/gruff_test_case.rb +0 -152
- data/test/image_compare.rb +0 -58
- data/test/test_accumulator_bar.rb +0 -51
- data/test/test_area.rb +0 -134
- data/test/test_bar.rb +0 -505
- data/test/test_base.rb +0 -33
- data/test/test_bezier.rb +0 -33
- data/test/test_bullet.rb +0 -26
- data/test/test_dot.rb +0 -263
- data/test/test_labels_for_null_data.rb +0 -27
- data/test/test_legend.rb +0 -68
- data/test/test_line.rb +0 -674
- data/test/test_mini_bar.rb +0 -33
- data/test/test_mini_pie.rb +0 -25
- data/test/test_mini_side_bar.rb +0 -36
- data/test/test_net.rb +0 -231
- data/test/test_photo.rb +0 -41
- data/test/test_pie.rb +0 -194
- data/test/test_scatter.rb +0 -270
- data/test/test_scene.rb +0 -100
- data/test/test_side_bar.rb +0 -56
- data/test/test_sidestacked_bar.rb +0 -105
- data/test/test_spider.rb +0 -226
- data/test/test_stacked_area.rb +0 -52
- data/test/test_stacked_bar.rb +0 -68
data/.travis.yml
CHANGED
@@ -1,19 +1,26 @@
|
|
1
1
|
language: ruby
|
2
2
|
sudo: false
|
3
|
+
cache: bundler
|
4
|
+
|
3
5
|
rvm:
|
4
|
-
-
|
5
|
-
-
|
6
|
-
-
|
7
|
-
-
|
8
|
-
-
|
9
|
-
- jruby-1.7.
|
6
|
+
- 2.3
|
7
|
+
- 2.4
|
8
|
+
- 2.5
|
9
|
+
- 2.6
|
10
|
+
- 2.7
|
11
|
+
- jruby-1.7.26
|
10
12
|
- jruby-9.0.5.0
|
11
|
-
- jruby-9.1.
|
13
|
+
- jruby-9.1.9.0
|
12
14
|
- jruby-head
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
include:
|
18
|
+
- name: 'Lint'
|
19
|
+
rvm: 2.3
|
20
|
+
script: bundle exec rubocop
|
21
|
+
|
22
|
+
addons:
|
23
|
+
apt:
|
24
|
+
packages:
|
25
|
+
- gsfonts
|
26
|
+
- ghostscript
|
@@ -1,4 +1,11 @@
|
|
1
|
-
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
## 0.8.0
|
4
|
+
|
5
|
+
* Remove version restriction in RMagick (#186)
|
6
|
+
* Remove the upper limit (< Ruby 3.0) from the required Ruby version (#207)
|
7
|
+
|
8
|
+
## 0.5.1
|
2
9
|
|
3
10
|
Skip packaging the test images. This reduces the gem from 20MB+ to
|
4
11
|
300KB+.
|
@@ -8,7 +15,7 @@ Bugfixes:
|
|
8
15
|
* Issue #92 Reduce the gem size by not shipping the test images.
|
9
16
|
|
10
17
|
|
11
|
-
|
18
|
+
## 0.5.0
|
12
19
|
|
13
20
|
We have added a couple of cosmetic changes: Multiple marker lines both
|
14
21
|
vertically and horizontally, and multi-line titles, or no title at all if
|
@@ -29,7 +36,7 @@ Pull requests:
|
|
29
36
|
* Issue #90 Added missing parenthesis in base.rb
|
30
37
|
|
31
38
|
|
32
|
-
|
39
|
+
## 0.4.0
|
33
40
|
|
34
41
|
All old branches and pull requests have been merged or deleted. Over 40
|
35
42
|
issues have been resolved! Ruby 2.0 compatibility has been confirmed.
|
@@ -101,55 +108,55 @@ Internal:
|
|
101
108
|
* Issue #80 Remove the .rmvrc file from the project
|
102
109
|
|
103
110
|
|
104
|
-
|
111
|
+
## 0.3.7
|
105
112
|
|
106
113
|
* ???
|
107
114
|
|
108
|
-
|
115
|
+
## 0.3.6
|
109
116
|
|
110
117
|
* Fixed manifest to list dot graph [theirishpenguin]
|
111
118
|
* Fixed color cycling error [Gunnar Wolf]
|
112
119
|
* Handle case where a line graph data set only has one value [Ron Colwill]
|
113
120
|
|
114
|
-
|
121
|
+
## 0.3.5
|
115
122
|
|
116
123
|
* Added dot graph from Erik Andrejko
|
117
124
|
|
118
|
-
|
125
|
+
## 0.3.4
|
119
126
|
|
120
127
|
* Reverted DEBUG=true. Will add a check in the release process so this doesn't happen again.
|
121
128
|
* Future releases will end in an odd number for development (topfunky-gruff on GitHub) or even for production releases.
|
122
129
|
|
123
|
-
|
130
|
+
## 0.3.3
|
124
131
|
|
125
132
|
* Legend line wrapping [Mat Schaffer]
|
126
133
|
* Stacked area graph fixes [James Coglan]
|
127
134
|
|
128
|
-
|
135
|
+
## 0.3.2
|
129
136
|
|
130
137
|
* Include init.rb for use as a Rails plugin.
|
131
138
|
|
132
|
-
|
139
|
+
## 0.3.1
|
133
140
|
|
134
141
|
* Fixed missing bullet graph bug (experimental, will be in a future release).
|
135
142
|
|
136
|
-
|
143
|
+
## 0.3.0
|
137
144
|
|
138
145
|
* Fixed bug where pie graphs weren't drawing their label correctly.
|
139
146
|
|
140
|
-
|
147
|
+
## 0.2.9
|
141
148
|
|
142
149
|
* Patch to make SideBar accurate instead of stacked [Marik]
|
143
150
|
* Will be extracting net, pie, stacked, and side-stacked to separate gem
|
144
151
|
in next release.
|
145
152
|
|
146
|
-
|
153
|
+
## 0.2.8
|
147
154
|
|
148
155
|
* New accumulator bar graph (experimental)
|
149
156
|
* Better mini graphs
|
150
157
|
* Bug fixes
|
151
158
|
|
152
|
-
|
159
|
+
## 0.2.7
|
153
160
|
|
154
161
|
* Regenerated Manifest.txt
|
155
162
|
* Added scene sample to package
|
@@ -158,27 +165,27 @@ Internal:
|
|
158
165
|
* Increased size of numbers in Gruff::Mini::Pie
|
159
166
|
* Added legend_box_size accessor
|
160
167
|
|
161
|
-
|
168
|
+
## 0.2.6
|
162
169
|
|
163
170
|
* Fixed missing side_bar.rb in Manifest.txt
|
164
171
|
|
165
|
-
|
172
|
+
## 0.2.5
|
166
173
|
|
167
174
|
* New mini graph types (Experimental)
|
168
175
|
* Marker lines can be different color than text labels
|
169
176
|
* Theme definition cleanup
|
170
177
|
|
171
|
-
|
178
|
+
## 0.2.4
|
172
179
|
|
173
180
|
* Added option to hide line numbers
|
174
181
|
* Fixed code that was causing warnings
|
175
182
|
|
176
|
-
|
183
|
+
## 0.2.3
|
177
184
|
|
178
185
|
* Cleaned up measurements so the graph expands to fill the available space
|
179
186
|
* Added x-axis and y-axis label options
|
180
187
|
|
181
|
-
|
188
|
+
## 0.1.2
|
182
189
|
|
183
190
|
* minimum_value and maximum_value can be set after data() to manually scale the graph
|
184
191
|
* Fixed infinite loop bug when values are all equal
|
@@ -187,17 +194,17 @@ Internal:
|
|
187
194
|
* Initial refactoring of tests
|
188
195
|
* A host of other bug fixes
|
189
196
|
|
190
|
-
|
197
|
+
## 0.0.8
|
191
198
|
|
192
199
|
* NEW Sidestacked Bar Graphs. [Alun Eyre]
|
193
200
|
* baseline_value larger than data will now show correctly. [Mike Perham]
|
194
201
|
* hide_dots and hide_lines are now options for line graphs.
|
195
202
|
|
196
|
-
|
203
|
+
## 0.0.6
|
197
204
|
|
198
205
|
* Fixed hang when no data is passed.
|
199
206
|
|
200
|
-
|
207
|
+
## 0.0.4
|
201
208
|
|
202
209
|
* Added bar graphs
|
203
210
|
* Added area graphs
|
@@ -207,18 +214,18 @@ Internal:
|
|
207
214
|
* Added initial line marker rounding to significant digits (Christian Winkler)
|
208
215
|
* Line graphs line width is scaled with number of points being drawn (Christian Winkler)
|
209
216
|
|
210
|
-
|
217
|
+
## 0.0.3
|
211
218
|
|
212
219
|
* Added option to draw line graphs without the lines (points only), thanks to Eric Hodel
|
213
220
|
* Removed font-minimum check so graphs look better at 300px width
|
214
221
|
|
215
|
-
|
222
|
+
## 0.0.2
|
216
223
|
|
217
224
|
* Fixed to_blob (thanks to Carlos Villela)
|
218
225
|
* Added bar graphs (initial functionality...will be enhanced)
|
219
226
|
* Removed rendered test output from gem
|
220
227
|
|
221
|
-
|
228
|
+
## 0.0.1
|
222
229
|
|
223
230
|
* Initial release.
|
224
231
|
* Line graphs only. Other graph styles coming soon.
|
data/README.md
CHANGED
@@ -5,6 +5,9 @@
|
|
5
5
|
|
6
6
|
A library for making beautiful graphs.
|
7
7
|
|
8
|
+
Built on top of [rmagick](https://github.com/rmagick/rmagick); see its web page
|
9
|
+
for a list of the system-level prerequisities (ImageMagick etc) and how to install them.
|
10
|
+
|
8
11
|
## Installation
|
9
12
|
|
10
13
|
Add this line to your application's Gemfile:
|
@@ -42,8 +45,6 @@ You can find many examples in the [test](https://github.com/topfunky/gruff/tree/
|
|
42
45
|
directory along with their resulting charts in the
|
43
46
|
[output](https://github.com/topfunky/gruff/tree/master/test/output) directory.
|
44
47
|
|
45
|
-
You can find older examples here: http://nubyonrails.com/pages/gruff
|
46
|
-
|
47
48
|
### Accumulator bar chart
|
48
49
|
|
49
50
|

|
data/Rakefile
CHANGED
@@ -3,18 +3,18 @@ require 'bundler/gem_tasks'
|
|
3
3
|
require 'rake/testtask'
|
4
4
|
require 'rake/clean'
|
5
5
|
|
6
|
-
CLEAN.concat %w
|
6
|
+
CLEAN.concat %w[pkg test/output/*]
|
7
7
|
|
8
8
|
desc 'Run tests'
|
9
|
-
task :
|
9
|
+
task default: :test
|
10
10
|
|
11
|
-
task :
|
11
|
+
task gem: :build
|
12
12
|
|
13
13
|
Rake::TestTask.new
|
14
14
|
|
15
15
|
namespace :test do
|
16
16
|
desc 'Run mini tests'
|
17
|
-
task :
|
17
|
+
task mini: :clean do
|
18
18
|
Dir['test/test_mini*'].each do |file|
|
19
19
|
system "ruby #{file}"
|
20
20
|
end
|
@@ -24,6 +24,7 @@ end
|
|
24
24
|
desc 'Generate release docs for a given milestone'
|
25
25
|
task :release_docs do
|
26
26
|
raise "\n This task requires Ruby 1.9 or newer to parse JSON as YAML.\n\n" if RUBY_VERSION == '1.8.7'
|
27
|
+
|
27
28
|
categories, grouped_issues, milestone, milestone_description, milestone_name = get_github_issues
|
28
29
|
|
29
30
|
puts '=' * 80
|
@@ -39,7 +40,7 @@ New in version #{milestone_name}:
|
|
39
40
|
|
40
41
|
#{(categories.keys & grouped_issues.keys).map do |cat|
|
41
42
|
"#{cat}:\n
|
42
|
-
#{grouped_issues[cat].map { |i| wrap(%Q
|
43
|
+
#{grouped_issues[cat].map { |i| wrap(%Q(* Issue ##{i['number']} #{i['title']}), 2) }.join("\n")}
|
43
44
|
"
|
44
45
|
end.join("\n")}
|
45
46
|
You can find a complete list of issues here:
|
@@ -89,7 +90,7 @@ task :stats do
|
|
89
90
|
counts_per_month = Hash.new { |h, k| h[k] = Hash.new { |mh, mk| mh[mk] = 0 } }
|
90
91
|
total = 0
|
91
92
|
|
92
|
-
%w
|
93
|
+
%w[gruff].each do |gem|
|
93
94
|
versions_uri = URI("#{base_uri}/versions/#{gem}.yaml")
|
94
95
|
req = Net::HTTP::Get.new(versions_uri.request_uri)
|
95
96
|
res = https.start { |http| http.request(req) }
|
@@ -107,7 +108,8 @@ task :stats do
|
|
107
108
|
counts_per_month[date.year][date.month] += count
|
108
109
|
total += count
|
109
110
|
end
|
110
|
-
print '.'
|
111
|
+
print '.'
|
112
|
+
STDOUT.flush
|
111
113
|
end
|
112
114
|
puts
|
113
115
|
end
|
@@ -130,14 +132,14 @@ task :stats do
|
|
130
132
|
years = counts_per_month.keys
|
131
133
|
puts ' ' + years.map { |year| '%-12s' % year }.join
|
132
134
|
(0..20).each do |l|
|
133
|
-
print (l % 10 == 0) ? '%4d' % ((20-l) * 100) : ' '
|
135
|
+
print (l % 10 == 0) ? '%4d' % ((20 - l) * 100) : ' '
|
134
136
|
years.each do |year|
|
135
137
|
(1..12).each do |month|
|
136
138
|
count = counts_per_month[year][month]
|
137
139
|
if [year, month] == [Date.today.year, Date.today.month]
|
138
140
|
count *= (Date.new(Date.today.year, Date.today.month, -1).day.to_f / Date.today.day).to_i
|
139
141
|
end
|
140
|
-
print count > ((20-l) * 100) ? '*' : ' '
|
142
|
+
print count > ((20 - l) * 100) ? '*' : ' '
|
141
143
|
end
|
142
144
|
end
|
143
145
|
puts
|
@@ -147,7 +149,6 @@ task :stats do
|
|
147
149
|
puts "\nTotal: #{total}\n\n"
|
148
150
|
end
|
149
151
|
|
150
|
-
|
151
152
|
def get_github_issues
|
152
153
|
puts 'GitHub login:'
|
153
154
|
begin
|
@@ -156,8 +157,11 @@ def get_github_issues
|
|
156
157
|
user = ask('login : ') { |q| q.echo = true }
|
157
158
|
pass = ask('password: ') { |q| q.echo = '*' }
|
158
159
|
rescue Exception
|
159
|
-
print 'user name: '
|
160
|
-
|
160
|
+
print 'user name: '
|
161
|
+
user = STDIN.gets.chomp
|
162
|
+
|
163
|
+
print ' password: '
|
164
|
+
pass = STDIN.gets.chomp
|
161
165
|
end
|
162
166
|
require 'uri'
|
163
167
|
require 'net/http'
|
@@ -180,7 +184,8 @@ def get_github_issues
|
|
180
184
|
if defined? ask
|
181
185
|
milestone = ask('milestone: ', Integer) { |q| q.echo = true }
|
182
186
|
else
|
183
|
-
print 'milestone: '
|
187
|
+
print 'milestone: '
|
188
|
+
milestone = STDIN.gets.chomp
|
184
189
|
end
|
185
190
|
|
186
191
|
uri = URI("#{base_uri}/issues?milestone=#{milestone}&state=closed&per_page=1000")
|
@@ -190,11 +195,16 @@ def get_github_issues
|
|
190
195
|
issues = YAML.load(res.body).sort_by { |i| i['number'] }
|
191
196
|
milestone_name = issues[0] ? issues[0]['milestone']['title'] : "No issues for milestone #{milestone}"
|
192
197
|
milestone_description = issues[0] ? issues[0]['milestone']['description'] : "No issues for milestone #{milestone}"
|
193
|
-
milestone_description = milestone_description.split("\r\n").map{|l|wrap l}.join("\r\n")
|
198
|
+
milestone_description = milestone_description.split("\r\n").map { |l| wrap l }.join("\r\n")
|
194
199
|
categories = {
|
195
|
-
|
196
|
-
|
197
|
-
|
200
|
+
'Features' => 'feature',
|
201
|
+
'Bugfixes' => 'bug',
|
202
|
+
'Support' => 'support',
|
203
|
+
'Documentation' => 'documentation',
|
204
|
+
'Pull requests' => nil,
|
205
|
+
'Internal' => 'internal',
|
206
|
+
'Rejected' => 'rejected',
|
207
|
+
'Other' => nil
|
198
208
|
}
|
199
209
|
grouped_issues = issues.group_by do |i|
|
200
210
|
labels = i['labels'].map { |l| l['name'] }
|
@@ -215,4 +225,3 @@ end
|
|
215
225
|
def wrap(string, indent = 0)
|
216
226
|
string.scan(/\S.{0,72}\S(?=\s|$)|\S+/).join("\n" + ' ' * indent)
|
217
227
|
end
|
218
|
-
|
data/assets/bubble.png
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/assets/pc306715.jpg
CHANGED
Binary file
|
data/assets/plastik/blue.png
CHANGED
Binary file
|
data/assets/plastik/green.png
CHANGED
Binary file
|
data/assets/plastik/red.png
CHANGED
Binary file
|
data/gruff.gemspec
CHANGED
@@ -5,28 +5,30 @@ require 'date'
|
|
5
5
|
require 'gruff/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
|
-
s.name = %q
|
8
|
+
s.name = %q(gruff)
|
9
9
|
s.version = Gruff::VERSION
|
10
10
|
s.authors = ['Geoffrey Grosenbach', 'Uwe Kubosch']
|
11
11
|
s.date = Date.today.to_s
|
12
|
-
s.description = %q
|
13
|
-
s.email = %q
|
14
|
-
s.files = `git ls-files`.split($/).reject{|f| f =~ /^test
|
15
|
-
s.homepage = %q
|
16
|
-
s.require_paths = %w
|
17
|
-
s.summary = %q
|
12
|
+
s.description = %q(Beautiful graphs for one or multiple datasets. Can be used on websites or in documents.)
|
13
|
+
s.email = %q(boss@topfunky.com)
|
14
|
+
s.files = `git ls-files`.split($/).reject { |f| f =~ /^test/ }
|
15
|
+
s.homepage = %q(https://github.com/topfunky/gruff)
|
16
|
+
s.require_paths = %w[lib]
|
17
|
+
s.summary = %q(Beautiful graphs for one or multiple datasets.)
|
18
18
|
s.license = 'MIT'
|
19
19
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
20
20
|
s.executables = s.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
21
21
|
s.specification_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
22
|
-
s.required_ruby_version = ['>= 1.9.3', '< 3']
|
23
22
|
|
24
23
|
if defined? JRUBY_VERSION
|
25
24
|
s.platform = 'java'
|
26
|
-
s.add_dependency 'rmagick4j'
|
25
|
+
s.add_dependency 'rmagick4j'
|
27
26
|
else
|
28
|
-
s.add_dependency 'rmagick'
|
27
|
+
s.add_dependency 'rmagick'
|
28
|
+
s.add_development_dependency 'rubocop', '~> 0.81.0'
|
29
29
|
end
|
30
|
+
s.required_ruby_version = '>= 1.9.3'
|
31
|
+
|
30
32
|
s.add_development_dependency('rake')
|
31
33
|
s.add_development_dependency('minitest-reporters')
|
32
34
|
end
|