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
@@ -1,226 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require File.dirname(__FILE__) + "/gruff_test_case"
4
-
5
- class TestGruffSpider < GruffTestCase
6
-
7
- def setup
8
- @datasets = [
9
- [:Strength, [10]],
10
- [:Dexterity, [16]],
11
- [:Constitution, [12]],
12
- [:Intelligence, [12]],
13
- [:Wisdom, [10]],
14
- ["Charisma", [16]],
15
- ]
16
-
17
- # @datasets = [
18
- # [:Darren, [25]],
19
- # [:Chris, [80]],
20
- # [:Egbert, [22]],
21
- # [:Adam, [95]],
22
- # [:Bill, [90]],
23
- # ["Frank", [5]],
24
- # ["Zero", [0]],
25
- # ]
26
- end
27
-
28
- def test_spider_graph
29
- g = Gruff::Spider.new(20)
30
- g.title = "Spider Graph Test"
31
- @datasets.each do |data|
32
- g.data(data[0], data[1])
33
- end
34
-
35
- # Default theme
36
- g.write("test/output/spider_keynote.png")
37
- end
38
-
39
- def test_pie_graph_small
40
- g = Gruff::Spider.new(20, 400)
41
- g.title = "Visual Spider Graph Test Small"
42
- @datasets.each do |data|
43
- g.data(data[0], data[1])
44
- end
45
-
46
- # Default theme
47
- g.write("test/output/spider_small.png")
48
- end
49
-
50
- def test_spider_graph_nearly_equal
51
- g = Gruff::Spider.new(50)
52
- g.title = "Spider Graph Nearly Equal"
53
-
54
- g.data(:Blake, [41])
55
- g.data(:Aaron, [42])
56
- g.data(:Grouch, [40])
57
- # g.data(:Snuffleupagus, [43])
58
-
59
- g.write("test/output/spider_nearly_equal.png")
60
- end
61
-
62
- def test_pie_graph_equal
63
- g = Gruff::Spider.new(50)
64
- g.title = "Spider Graph Equal"
65
-
66
- g.data(:Bert, [41])
67
- g.data(:Adam, [41])
68
- g.data(:Joe, [41])
69
-
70
- g.write("test/output/spider_equal.png")
71
- end
72
-
73
- def test_pie_graph_zero
74
- g = Gruff::Spider.new(2)
75
- g.title = "Pie Graph Two One Zero"
76
-
77
- g.data(:Bert, [0])
78
- g.data(:Adam, [1])
79
- g.data(:Sam, [2])
80
-
81
- g.write("test/output/spider_zero.png")
82
- end
83
-
84
- def test_wide
85
- g = setup_basic_graph('800x400')
86
- g.title = "Wide spider"
87
- g.write("test/output/spider_wide.png")
88
- end
89
-
90
- def test_label_size
91
- g = setup_basic_graph()
92
- g.title = "Spider With Small Legend"
93
- g.legend_font_size = 10
94
- g.write("test/output/spider_legend.png")
95
-
96
- g = setup_basic_graph(400)
97
- g.title = "Small spider With Small Legend"
98
- g.legend_font_size = 10
99
- g.write("test/output/spider_legend_small.png")
100
- end
101
-
102
- def test_theme_37signals
103
- g = Gruff::Spider.new(20)
104
- g.title = "Spider Graph Test"
105
- @datasets.each do |data|
106
- g.data(data[0], data[1])
107
- end
108
-
109
- g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
110
-
111
- # Default theme
112
- g.write("test/output/spider_37signals.png")
113
- end
114
-
115
- def test_no_axes
116
- g = Gruff::Spider.new(20)
117
- g.title = "Look ma, no axes"
118
- g.hide_axes = true
119
- @datasets.each do |data|
120
- g.data(data[0], data[1])
121
- end
122
- g.write("test/output/spider_no_axes.png")
123
-
124
- end
125
-
126
- def test_no_print
127
- g = Gruff::Spider.new(20)
128
- g.title = "Should not print"
129
- g.hide_text = true
130
- @datasets.each do |data|
131
- g.data(data[0], data[1])
132
- end
133
- g.write("test/output/spider_no_print.png")
134
- end
135
-
136
- def test_transparency
137
- g = Gruff::Spider.new(20)
138
- g.title = "Transparent background"
139
- g.hide_text = true
140
- g.transparent_background = true
141
- g.hide_axes = true
142
- @datasets.each do |data|
143
- g.data(data[0], data[1])
144
- end
145
- g.write("test/output/spider_no_background.png")
146
- end
147
-
148
- def test_overlay
149
- g = Gruff::Spider.new(20)
150
- g.title = "George (blue) vs Sarah (white)"
151
- @datasets.each do |data|
152
- g.data(data[0], data[1])
153
- end
154
- g.write("test/output/spider_overlay_1.png")
155
-
156
- g = Gruff::Spider.new(20)
157
- g.title = "Transparent background"
158
- g.hide_text = true
159
- g.hide_axes = true
160
- g.transparent_background = true
161
- @datasets = [
162
- [:Strength, [18]],
163
- [:Dexterity, [10]],
164
- [:Constitution, [18]],
165
- [:Intelligence, [8]],
166
- [:Wisdom, [14]],
167
- ["Charisma", [4]],
168
- ]
169
- @datasets.each do |data|
170
- g.data(data[0], data[1])
171
- end
172
- g.marker_color = "#4F6EFF"
173
- g.write("test/output/spider_overlay_2.png")
174
- end
175
-
176
- def test_lots_of_data
177
- g = Gruff::Spider.new(10)
178
- @datasets = [[:a, [1]], [:b, [5]], [:c, [3]], [:d, [9]], [:e, [4]],
179
- [:f, [7]], [:g, [0]], [:h, [4]], [:i, [6]], [:j, [0]],
180
- [:k, [4]], [:l, [8]]]
181
-
182
- @datasets.each do |data|
183
- g.data(data[0], data[1])
184
- end
185
-
186
- g.title = "Sample Data"
187
- g.write("test/output/spider_lots_of_data.png")
188
- end
189
-
190
- def test_lots_of_data_with_large_names
191
- g = Gruff::Spider.new(10)
192
- @datasets = [[:anteaters, [1]], [:bulls, [5]], [:cats, [3]], [:dogs, [9]], [:elephants, [4]],
193
- [:frogs, [7]], [:giraffes, [0]], [:hamsters, [4]], [:iguanas, [6]],
194
- [:jaguar, [0]], [:kangaroo, [4]], [:locust, [8]]]
195
-
196
- @datasets.each do |data|
197
- g.data(data[0], data[1])
198
- end
199
-
200
- g.title = "Zoo Inventory"
201
- g.write("test/output/spider_lots_of_data_normal_names.png")
202
- end
203
-
204
- def test_rotation
205
- g = Gruff::Spider.new(20)
206
- g.title = "Rotation"
207
- @datasets.each do |data|
208
- g.data(data[0], data[1])
209
- end
210
-
211
- g.rotation = 45 # degrees
212
- g.write("test/output/spider_rotation.png")
213
- end
214
-
215
- protected
216
-
217
- def setup_basic_graph(size=800, max = 20)
218
- g = Gruff::Spider.new(max, size)
219
- g.title = "My Graph Title"
220
- @datasets.each do |data|
221
- g.data(data[0], data[1])
222
- end
223
- return g
224
- end
225
-
226
- end
@@ -1,52 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require File.dirname(__FILE__) + '/gruff_test_case'
4
-
5
- class TestGruffStackedArea < GruffTestCase
6
-
7
- def setup
8
- @datasets = [
9
- [:Jimmy, [25, 36, 86, 39]],
10
- [:Charles, [80, 54, 67, 54]],
11
- [:Julie, [22, 29, 35, 38]],
12
- ]
13
- @sample_labels = {
14
- 0 => '5/6',
15
- 1 => '5/15',
16
- 2 => '5/24'
17
- }
18
-
19
- end
20
-
21
- def test_area_graph
22
- g = Gruff::StackedArea.new
23
- g.title = 'Visual Stacked Area Graph Test'
24
- g.labels = {
25
- 0 => '5/6',
26
- 1 => '5/15',
27
- 2 => '5/24',
28
- 3 => '5/30',
29
- }
30
- @datasets.each do |data|
31
- g.data(data[0], data[1])
32
- end
33
- g.write 'test/output/stacked_area_keynote.png'
34
- end
35
-
36
-
37
- def test_area_graph_small
38
- g = Gruff::StackedArea.new(400)
39
- g.title = 'Visual Stacked Area Graph Test'
40
- g.labels = {
41
- 0 => '5/6',
42
- 1 => '5/15',
43
- 2 => '5/24',
44
- 3 => '5/30',
45
- }
46
- @datasets.each do |data|
47
- g.data(data[0], data[1])
48
- end
49
- g.write 'test/output/stacked_area_keynote_small.png'
50
- end
51
-
52
- end
@@ -1,68 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require File.dirname(__FILE__) + "/gruff_test_case"
4
-
5
- class TestGruffStackedBar < GruffTestCase
6
-
7
- def setup
8
- @datasets = [
9
- [:Jimmy, [25, 36, 86, 39]],
10
- [:Charles, [80, 54, 67, 54]],
11
- [:Julie, [22, 29, 35, 38]],
12
- ]
13
- @sample_labels = {
14
- 0 => '5/6',
15
- 1 => '5/15',
16
- 2 => '5/24'
17
- }
18
-
19
- end
20
-
21
- def test_bar_graph
22
- g = Gruff::StackedBar.new
23
- g.title = "Visual Stacked Bar Graph Test"
24
- g.labels = {
25
- 0 => '5/6',
26
- 1 => '5/15',
27
- 2 => '5/24',
28
- 3 => '5/30',
29
- }
30
- @datasets.each do |data|
31
- g.data(data[0], data[1])
32
- end
33
- g.write "test/output/stacked_bar_keynote.png"
34
- end
35
-
36
-
37
- def test_bar_graph_small
38
- g = Gruff::StackedBar.new(400)
39
- g.title = "Visual Stacked Bar Graph Test"
40
- g.labels = {
41
- 0 => '5/6',
42
- 1 => '5/15',
43
- 2 => '5/24',
44
- 3 => '5/30',
45
- }
46
- @datasets.each do |data|
47
- g.data(data[0], data[1])
48
- end
49
- g.write "test/output/stacked_bar_keynote_small.png"
50
- end
51
-
52
- def test_bar_graph_segment_spacing
53
- g = Gruff::StackedBar.new
54
- g.title = "Visual Stacked Bar Graph Test"
55
- g.segment_spacing = 0
56
- g.labels = {
57
- 0 => '5/6',
58
- 1 => '5/15',
59
- 2 => '5/24',
60
- 3 => '5/30',
61
- }
62
- @datasets.each do |data|
63
- g.data(data[0], data[1])
64
- end
65
- g.write "test/output/stacked_bar_keynote_no_space.png"
66
- end
67
-
68
- end