gruff 0.7.0-java → 0.8.0-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
![Accumulator bar chart](https://raw.github.com/topfunky/gruff/master/test/output/accum_bar.png)
|
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
|