gruff 0.7.0-java → 0.12.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.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/{History.txt → CHANGELOG.md} +81 -25
  3. data/Gemfile +3 -1
  4. data/README.md +51 -23
  5. data/assets/plastik/blue.png +0 -0
  6. data/assets/plastik/green.png +0 -0
  7. data/assets/plastik/red.png +0 -0
  8. data/gruff.gemspec +23 -13
  9. data/init.rb +2 -0
  10. data/lib/gruff.rb +33 -4
  11. data/lib/gruff/accumulator_bar.rb +17 -9
  12. data/lib/gruff/area.rb +31 -21
  13. data/lib/gruff/bar.rb +90 -46
  14. data/lib/gruff/base.rb +476 -710
  15. data/lib/gruff/bezier.rb +29 -18
  16. data/lib/gruff/bullet.rb +58 -71
  17. data/lib/gruff/dot.rb +35 -83
  18. data/lib/gruff/helper/bar_conversion.rb +47 -0
  19. data/lib/gruff/helper/bar_value_label_mixin.rb +33 -0
  20. data/lib/gruff/helper/stacked_mixin.rb +23 -0
  21. data/lib/gruff/histogram.rb +59 -0
  22. data/lib/gruff/line.rb +121 -199
  23. data/lib/gruff/mini/bar.rb +17 -10
  24. data/lib/gruff/mini/legend.rb +26 -38
  25. data/lib/gruff/mini/pie.rb +18 -13
  26. data/lib/gruff/mini/side_bar.rb +25 -12
  27. data/lib/gruff/net.rb +69 -83
  28. data/lib/gruff/patch/rmagick.rb +31 -0
  29. data/lib/gruff/patch/string.rb +13 -0
  30. data/lib/gruff/photo_bar.rb +36 -43
  31. data/lib/gruff/pie.rb +42 -103
  32. data/lib/gruff/renderer/bezier.rb +22 -0
  33. data/lib/gruff/renderer/circle.rb +22 -0
  34. data/lib/gruff/renderer/dash_line.rb +23 -0
  35. data/lib/gruff/renderer/dot.rb +40 -0
  36. data/lib/gruff/renderer/ellipse.rb +22 -0
  37. data/lib/gruff/renderer/line.rb +43 -0
  38. data/lib/gruff/renderer/polygon.rb +24 -0
  39. data/lib/gruff/renderer/polyline.rb +22 -0
  40. data/lib/gruff/renderer/rectangle.rb +20 -0
  41. data/lib/gruff/renderer/renderer.rb +120 -0
  42. data/lib/gruff/renderer/text.rb +57 -0
  43. data/lib/gruff/scatter.rb +128 -201
  44. data/lib/gruff/scene.rb +30 -41
  45. data/lib/gruff/side_bar.rb +100 -68
  46. data/lib/gruff/side_stacked_bar.rb +92 -63
  47. data/lib/gruff/spider.rb +47 -53
  48. data/lib/gruff/stacked_area.rb +37 -34
  49. data/lib/gruff/stacked_bar.rb +99 -54
  50. data/lib/gruff/store/basic_data.rb +36 -0
  51. data/lib/gruff/store/custom_data.rb +36 -0
  52. data/lib/gruff/store/store.rb +81 -0
  53. data/lib/gruff/store/xy_data.rb +58 -0
  54. data/lib/gruff/themes.rb +32 -33
  55. data/lib/gruff/version.rb +3 -1
  56. metadata +74 -102
  57. data/.gitignore +0 -7
  58. data/.travis.yml +0 -19
  59. data/Manifest.txt +0 -81
  60. data/RELEASE.md +0 -30
  61. data/Rakefile +0 -218
  62. data/assets/bubble.png +0 -0
  63. data/assets/city_scene/background/0000.png +0 -0
  64. data/assets/city_scene/background/0600.png +0 -0
  65. data/assets/city_scene/background/2000.png +0 -0
  66. data/assets/city_scene/clouds/cloudy.png +0 -0
  67. data/assets/city_scene/clouds/partly_cloudy.png +0 -0
  68. data/assets/city_scene/clouds/stormy.png +0 -0
  69. data/assets/city_scene/grass/default.png +0 -0
  70. data/assets/city_scene/haze/true.png +0 -0
  71. data/assets/city_scene/number_sample/1.png +0 -0
  72. data/assets/city_scene/number_sample/2.png +0 -0
  73. data/assets/city_scene/number_sample/default.png +0 -0
  74. data/assets/city_scene/sky/0000.png +0 -0
  75. data/assets/city_scene/sky/0200.png +0 -0
  76. data/assets/city_scene/sky/0400.png +0 -0
  77. data/assets/city_scene/sky/0600.png +0 -0
  78. data/assets/city_scene/sky/0800.png +0 -0
  79. data/assets/city_scene/sky/1000.png +0 -0
  80. data/assets/city_scene/sky/1200.png +0 -0
  81. data/assets/city_scene/sky/1400.png +0 -0
  82. data/assets/city_scene/sky/1500.png +0 -0
  83. data/assets/city_scene/sky/1700.png +0 -0
  84. data/assets/city_scene/sky/2000.png +0 -0
  85. data/assets/pc306715.jpg +0 -0
  86. data/lib/gruff/bar_conversion.rb +0 -46
  87. data/lib/gruff/deprecated.rb +0 -39
  88. data/lib/gruff/stacked_mixin.rb +0 -23
  89. data/test/gruff_test_case.rb +0 -152
  90. data/test/image_compare.rb +0 -58
  91. data/test/test_accumulator_bar.rb +0 -51
  92. data/test/test_area.rb +0 -134
  93. data/test/test_bar.rb +0 -505
  94. data/test/test_base.rb +0 -33
  95. data/test/test_bezier.rb +0 -33
  96. data/test/test_bullet.rb +0 -26
  97. data/test/test_dot.rb +0 -263
  98. data/test/test_labels_for_null_data.rb +0 -27
  99. data/test/test_legend.rb +0 -68
  100. data/test/test_line.rb +0 -674
  101. data/test/test_mini_bar.rb +0 -33
  102. data/test/test_mini_pie.rb +0 -25
  103. data/test/test_mini_side_bar.rb +0 -36
  104. data/test/test_net.rb +0 -231
  105. data/test/test_photo.rb +0 -41
  106. data/test/test_pie.rb +0 -194
  107. data/test/test_scatter.rb +0 -270
  108. data/test/test_scene.rb +0 -100
  109. data/test/test_side_bar.rb +0 -56
  110. data/test/test_sidestacked_bar.rb +0 -105
  111. data/test/test_spider.rb +0 -226
  112. data/test/test_stacked_area.rb +0 -52
  113. data/test/test_stacked_bar.rb +0 -68
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- *~
2
- /.idea/
3
- /pkg/
4
- .DS_Store
5
- .bundle
6
- .yardoc
7
- Gemfile.lock
@@ -1,19 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- rvm:
4
- - "1.9.3"
5
- - "2.0.0"
6
- - "2.1"
7
- - "2.2"
8
- - "2.3.1"
9
- - jruby-1.7.25
10
- - jruby-9.0.5.0
11
- - jruby-9.1.2.0
12
- - jruby-head
13
- - rbx
14
- - rbx-2
15
- before_install:
16
- - gem query -i -n ^bundler$ > /dev/null || gem install --no-ri --no-rdoc bundler
17
- notifications:
18
- email:
19
- - uwe@kubosch.no
@@ -1,81 +0,0 @@
1
- History.txt
2
- MIT-LICENSE
3
- Manifest.txt
4
- README.txt
5
- Rakefile
6
- assets/bubble.png
7
- assets/city_scene/background/0000.png
8
- assets/city_scene/background/0600.png
9
- assets/city_scene/background/2000.png
10
- assets/city_scene/clouds/cloudy.png
11
- assets/city_scene/clouds/partly_cloudy.png
12
- assets/city_scene/clouds/stormy.png
13
- assets/city_scene/grass/default.png
14
- assets/city_scene/haze/true.png
15
- assets/city_scene/number_sample/1.png
16
- assets/city_scene/number_sample/2.png
17
- assets/city_scene/number_sample/default.png
18
- assets/city_scene/sky/0000.png
19
- assets/city_scene/sky/0200.png
20
- assets/city_scene/sky/0400.png
21
- assets/city_scene/sky/0600.png
22
- assets/city_scene/sky/0800.png
23
- assets/city_scene/sky/1000.png
24
- assets/city_scene/sky/1200.png
25
- assets/city_scene/sky/1400.png
26
- assets/city_scene/sky/1500.png
27
- assets/city_scene/sky/1700.png
28
- assets/city_scene/sky/2000.png
29
- assets/pc306715.jpg
30
- assets/plastik/blue.png
31
- assets/plastik/green.png
32
- assets/plastik/red.png
33
- init.rb
34
- lib/gruff.rb
35
- lib/gruff/accumulator_bar.rb
36
- lib/gruff/area.rb
37
- lib/gruff/bar.rb
38
- lib/gruff/bar_conversion.rb
39
- lib/gruff/base.rb
40
- lib/gruff/bullet.rb
41
- lib/gruff/deprecated.rb
42
- lib/gruff/dot.rb
43
- lib/gruff/line.rb
44
- lib/gruff/mini/bar.rb
45
- lib/gruff/mini/legend.rb
46
- lib/gruff/mini/pie.rb
47
- lib/gruff/mini/side_bar.rb
48
- lib/gruff/net.rb
49
- lib/gruff/photo_bar.rb
50
- lib/gruff/pie.rb
51
- lib/gruff/scene.rb
52
- lib/gruff/side_bar.rb
53
- lib/gruff/side_stacked_bar.rb
54
- lib/gruff/spider.rb
55
- lib/gruff/stacked_area.rb
56
- lib/gruff/stacked_bar.rb
57
- lib/gruff/stacked_mixin.rb
58
- rails_generators/gruff/gruff_generator.rb
59
- rails_generators/gruff/templates/controller.rb
60
- rails_generators/gruff/templates/functional_test.rb
61
- test/gruff_test_case.rb
62
- test/test_accumulator_bar.rb
63
- test/test_area.rb
64
- test/test_bar.rb
65
- test/test_base.rb
66
- test/test_bullet.rb
67
- test/test_dot.rb
68
- test/test_legend.rb
69
- test/test_line.rb
70
- test/test_mini_bar.rb
71
- test/test_mini_pie.rb
72
- test/test_mini_side_bar.rb
73
- test/test_net.rb
74
- test/test_photo.rb
75
- test/test_pie.rb
76
- test/test_scene.rb
77
- test/test_side_bar.rb
78
- test/test_sidestacked_bar.rb
79
- test/test_spider.rb
80
- test/test_stacked_area.rb
81
- test/test_stacked_bar.rb
data/RELEASE.md DELETED
@@ -1,30 +0,0 @@
1
- Subject: [ANN] Gruff 0.5.1 released!
2
-
3
- The Gruff team is pleased to announce the release of Gruff 0.5.1.
4
-
5
- New in version 0.5.1:
6
-
7
- Skip packaging the test images. This reduces the gem from 20MB+ to
8
- 300KB+.
9
-
10
- Bugfixes:
11
-
12
- * Issue #92 Reduce the gem size by not shipping the test images.
13
-
14
- You can find a complete list of issues here:
15
-
16
- * https://github.com/topfunky/gruff/issues?state=closed&milestone=7
17
-
18
-
19
- Installation:
20
-
21
- gem install gruff
22
-
23
- You can find an introductory tutorial at
24
- https://github.com/topfunky/gruff
25
-
26
- Enjoy!
27
-
28
-
29
- --
30
- The Gruff Team
data/Rakefile DELETED
@@ -1,218 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler/gem_tasks'
3
- require 'rake/testtask'
4
- require 'rake/clean'
5
-
6
- CLEAN.concat %w(pkg test/output/*)
7
-
8
- desc 'Run tests'
9
- task :default => :test
10
-
11
- task :gem => :build
12
-
13
- Rake::TestTask.new
14
-
15
- namespace :test do
16
- desc 'Run mini tests'
17
- task :mini => :clean do
18
- Dir['test/test_mini*'].each do |file|
19
- system "ruby #{file}"
20
- end
21
- end
22
- end
23
-
24
- desc 'Generate release docs for a given milestone'
25
- task :release_docs do
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
- categories, grouped_issues, milestone, milestone_description, milestone_name = get_github_issues
28
-
29
- puts '=' * 80
30
- puts
31
- release_doc = <<EOF
32
- Subject: [ANN] Gruff #{milestone_name} released!
33
-
34
- The Gruff team is pleased to announce the release of Gruff #{milestone_name}.
35
-
36
- New in version #{milestone_name}:
37
-
38
- #{milestone_description}
39
-
40
- #{(categories.keys & grouped_issues.keys).map do |cat|
41
- "#{cat}:\n
42
- #{grouped_issues[cat].map { |i| wrap(%Q{* Issue ##{i['number']} #{i['title']}},2) }.join("\n")}
43
- "
44
- end.join("\n")}
45
- You can find a complete list of issues here:
46
-
47
- * https://github.com/topfunky/gruff/issues?state=closed&milestone=#{milestone}
48
-
49
-
50
- Installation:
51
-
52
- gem install gruff
53
-
54
- You can find an introductory tutorial at
55
- https://github.com/topfunky/gruff
56
-
57
- Enjoy!
58
-
59
-
60
- --
61
- The Gruff Team
62
- EOF
63
-
64
- puts release_doc
65
- puts
66
- puts '=' * 80
67
-
68
- unless Gem::Version.new(Gruff::VERSION).prerelease?
69
- File.write('RELEASE.md', release_doc)
70
- end
71
- end
72
-
73
- desc 'Fetch download stats form rubygems.org'
74
- task :stats do
75
- require 'time'
76
- require 'date'
77
- require 'rubygems'
78
- require 'uri'
79
- require 'net/http'
80
- require 'net/https'
81
- require 'openssl'
82
- require 'yaml'
83
- host = 'rubygems.org'
84
- base_uri = "https://#{host}/api/v1"
85
- https = Net::HTTP.new(host, 443)
86
- https.use_ssl = true
87
- https.verify_mode = OpenSSL::SSL::VERIFY_NONE
88
-
89
- counts_per_month = Hash.new { |h, k| h[k] = Hash.new { |mh, mk| mh[mk] = 0 } }
90
- total = 0
91
-
92
- %w{gruff}.each do |gem|
93
- versions_uri = URI("#{base_uri}/versions/#{gem}.yaml")
94
- req = Net::HTTP::Get.new(versions_uri.request_uri)
95
- res = https.start { |http| http.request(req) }
96
- versions = YAML.load(res.body).sort_by { |v| Gem::Version.new(v['number']) }
97
- puts "\n#{gem}:\n#{versions.map { |v| "#{Time.parse(v['built_at']).strftime('%Y-%m-%d')} #{'%10s' % v['number']} #{v['downloads_count']}" }.join("\n")}"
98
-
99
- versions.each do |v|
100
- downloads_uri = URI("#{base_uri}/versions/#{gem}-#{v['number']}/downloads/search.yaml?from=#{Time.parse(v['built_at']).strftime('%Y-%m-%d')}&to=#{Date.today}")
101
- req = Net::HTTP::Get.new(downloads_uri.request_uri)
102
- res = https.start { |http| http.request(req) }
103
- counts = YAML.load(res.body)
104
- counts.delete_if { |date_str, count| count == 0 }
105
- counts.each do |date_str, count|
106
- date = Date.parse(date_str)
107
- counts_per_month[date.year][date.month] += count
108
- total += count
109
- end
110
- print '.'; STDOUT.flush
111
- end
112
- puts
113
- end
114
-
115
- puts "\nDownloads statistics per month:"
116
- years = counts_per_month.keys
117
- puts "\n #{years.map { |year| '%6s:' % year }.join(' ')}"
118
- (1..12).each do |month|
119
- print "#{'%2d' % month}:"
120
- years.each do |year|
121
- count = counts_per_month[year][month]
122
- print count > 0 ? '%8d' % count : ' ' * 8
123
- end
124
- puts
125
- end
126
-
127
- puts "\nTotal: #{total}\n\n"
128
-
129
- puts "\nRubyGems download statistics per month:"
130
- years = counts_per_month.keys
131
- puts ' ' + years.map { |year| '%-12s' % year }.join
132
- (0..20).each do |l|
133
- print (l % 10 == 0) ? '%4d' % ((20-l) * 100) : ' '
134
- years.each do |year|
135
- (1..12).each do |month|
136
- count = counts_per_month[year][month]
137
- if [year, month] == [Date.today.year, Date.today.month]
138
- count *= (Date.new(Date.today.year, Date.today.month, -1).day.to_f / Date.today.day).to_i
139
- end
140
- print count > ((20-l) * 100) ? '*' : ' '
141
- end
142
- end
143
- puts
144
- end
145
- puts ' ' + years.map { |year| '%-12s' % year }.join
146
-
147
- puts "\nTotal: #{total}\n\n"
148
- end
149
-
150
-
151
- def get_github_issues
152
- puts 'GitHub login:'
153
- begin
154
- require 'rubygems'
155
- require 'highline/import'
156
- user = ask('login : ') { |q| q.echo = true }
157
- pass = ask('password: ') { |q| q.echo = '*' }
158
- rescue Exception
159
- print 'user name: '; user = STDIN.gets.chomp
160
- print ' password: '; pass = STDIN.gets.chomp
161
- end
162
- require 'uri'
163
- require 'net/http'
164
- require 'net/https'
165
- require 'openssl'
166
- require 'yaml'
167
- host = 'api.github.com'
168
- base_uri = "https://#{host}/repos/topfunky/gruff"
169
- https = Net::HTTP.new(host, 443)
170
- https.use_ssl = true
171
- https.verify_mode = OpenSSL::SSL::VERIFY_NONE
172
-
173
- milestone_uri = URI("#{base_uri}/milestones")
174
- req = Net::HTTP::Get.new(milestone_uri.request_uri)
175
- req.basic_auth(user, pass)
176
- res = https.start { |http| http.request(req) }
177
- milestones = YAML.load(res.body).sort_by { |i| Date.parse(i['due_on']) }
178
- puts milestones.map { |m| "#{'%2d' % m['number']} #{m['title']}" }.join("\n")
179
-
180
- if defined? ask
181
- milestone = ask('milestone: ', Integer) { |q| q.echo = true }
182
- else
183
- print 'milestone: '; milestone = STDIN.gets.chomp
184
- end
185
-
186
- uri = URI("#{base_uri}/issues?milestone=#{milestone}&state=closed&per_page=1000")
187
- req = Net::HTTP::Get.new(uri.request_uri)
188
- req.basic_auth(user, pass)
189
- res = https.start { |http| http.request(req) }
190
- issues = YAML.load(res.body).sort_by { |i| i['number'] }
191
- milestone_name = issues[0] ? issues[0]['milestone']['title'] : "No issues for milestone #{milestone}"
192
- 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")
194
- categories = {
195
- 'Features' => 'feature', 'Bugfixes' => 'bug', 'Support' => 'support',
196
- 'Documentation' => 'documentation', 'Pull requests' => nil,
197
- 'Internal' => 'internal', 'Rejected' => 'rejected', 'Other' => nil
198
- }
199
- grouped_issues = issues.group_by do |i|
200
- labels = i['labels'].map { |l| l['name'] }
201
- cat = nil
202
- categories.each do |k, v|
203
- if labels.include? v
204
- cat = k
205
- break
206
- end
207
- end
208
- cat ||= i['pull_request'] && i['pull_request']['html_url'] && 'Pull requests'
209
- cat ||= 'Other'
210
- cat
211
- end
212
- return categories, grouped_issues, milestone, milestone_description, milestone_name
213
- end
214
-
215
- def wrap(string, indent = 0)
216
- string.scan(/\S.{0,72}\S(?=\s|$)|\S+/).join("\n" + ' ' * indent)
217
- end
218
-
Binary file
Binary file
@@ -1,46 +0,0 @@
1
- ##
2
- # Original Author: David Stokar
3
- #
4
- # This class perfoms the y coordinats conversion for the bar class.
5
- #
6
- # There are three cases:
7
- #
8
- # 1. Bars all go from zero in positive direction
9
- # 2. Bars all go from zero to negative direction
10
- # 3. Bars either go from zero to positive or from zero to negative
11
- #
12
- class Gruff::BarConversion
13
- attr_writer :mode
14
- attr_writer :zero
15
- attr_writer :graph_top
16
- attr_writer :graph_height
17
- attr_writer :minimum_value
18
- attr_writer :spread
19
-
20
- def get_left_y_right_y_scaled(data_point, result)
21
- case @mode
22
- when 1 then # Case one
23
- # minimum value >= 0 ( only positiv values )
24
- result[0] = @graph_top + @graph_height*(1 - data_point) + 1
25
- result[1] = @graph_top + @graph_height - 1
26
- when 2 then # Case two
27
- # only negativ values
28
- result[0] = @graph_top + 1
29
- result[1] = @graph_top + @graph_height*(1 - data_point) - 1
30
- when 3 then # Case three
31
- # positiv and negativ values
32
- val = data_point-@minimum_value/@spread
33
- if data_point >= @zero
34
- result[0] = @graph_top + @graph_height*(1 - (val-@zero)) + 1
35
- result[1] = @graph_top + @graph_height*(1 - @zero) - 1
36
- else
37
- result[0] = @graph_top + @graph_height*(1 - (val-@zero)) + 1
38
- result[1] = @graph_top + @graph_height*(1 - @zero) - 1
39
- end
40
- else
41
- result[0] = 0.0
42
- result[1] = 0.0
43
- end
44
- end
45
-
46
- end