gruff 0.2.4 → 0.2.5
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.
- data/Manifest.txt +9 -0
- data/lib/gruff.rb +20 -12
- data/lib/gruff/bar.rb +8 -2
- data/lib/gruff/bar_conversion.rb +7 -16
- data/lib/gruff/base.rb +128 -106
- data/lib/gruff/line.rb +11 -15
- data/lib/gruff/mini/bar.rb +32 -0
- data/lib/gruff/mini/legend.rb +77 -0
- data/lib/gruff/mini/pie.rb +32 -0
- data/lib/gruff/mini/side_bar.rb +22 -0
- data/lib/gruff/pie.rb +26 -15
- data/lib/gruff/side_stacked_bar.rb +1 -0
- data/test/gruff_test_case.rb +86 -4
- data/test/test_bar.rb +27 -0
- data/test/test_legend.rb +40 -40
- data/test/test_line.rb +9 -39
- data/test/test_mini_bar.rb +18 -0
- data/test/test_mini_pie.rb +11 -0
- data/test/test_mini_side_bar.rb +12 -0
- data/test/test_pie.rb +14 -0
- data/test/test_sidestacked_bar.rb +15 -2
- metadata +13 -5
data/test/test_legend.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
1
|
require File.dirname(__FILE__) + "/gruff_test_case"
|
4
2
|
|
5
3
|
class TestGruffLegend < GruffTestCase
|
@@ -29,43 +27,45 @@ class TestGruffLegend < GruffTestCase
|
|
29
27
|
}
|
30
28
|
end
|
31
29
|
|
32
|
-
|
33
|
-
[800, 400].each do |width|
|
34
|
-
[nil, 4, 16, 30].each do |font_size|
|
35
|
-
g = Gruff::Bar.new(width)
|
36
|
-
g.title = "Wrapped Legend Bar Test #{font_size}pts #{width}px"
|
37
|
-
g.labels = @sample_labels
|
38
|
-
0xEFD250.step(0xFF0000, 60) do |num|
|
39
|
-
g.colors << "#%x" % num
|
40
|
-
end
|
41
|
-
|
42
|
-
@datasets.each do |data|
|
43
|
-
g.data(data[0], data[1])
|
44
|
-
end
|
45
|
-
|
46
|
-
g.legend_font_size = font_size unless font_size.nil?
|
47
|
-
g.write("test/output/bar_wrapped_legend_#{font_size}_#{width}.png")
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
30
|
+
## TODO Fix implementation
|
51
31
|
|
52
|
-
def
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
end
|
32
|
+
# def test_bar_legend_wrap
|
33
|
+
# [800, 400].each do |width|
|
34
|
+
# [nil, 4, 16, 30].each do |font_size|
|
35
|
+
# g = Gruff::Bar.new(width)
|
36
|
+
# g.title = "Wrapped Legend Bar Test #{font_size}pts #{width}px"
|
37
|
+
# g.labels = @sample_labels
|
38
|
+
# 0xEFD250.step(0xFF0000, 60) do |num|
|
39
|
+
# g.colors << "#%x" % num
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# @datasets.each do |data|
|
43
|
+
# g.data(data[0], data[1])
|
44
|
+
# end
|
45
|
+
#
|
46
|
+
# g.legend_font_size = font_size unless font_size.nil?
|
47
|
+
# g.write("test/output/bar_wrapped_legend_#{font_size}_#{width}.png")
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
# end
|
51
|
+
#
|
52
|
+
# def test_pie_legend_wrap
|
53
|
+
# [800, 400].each do |width|
|
54
|
+
# [nil, 4, 16, 30].each do |font_size|
|
55
|
+
# g = Gruff::Pie.new(width)
|
56
|
+
# g.title = "Wrapped Legend Pie Test #{font_size}pts #{width}px"
|
57
|
+
# g.labels = @sample_labels
|
58
|
+
# 0xEFD250.step(0xFF0000, 60) do |num|
|
59
|
+
# g.colors << "#%x" % num
|
60
|
+
# end
|
61
|
+
#
|
62
|
+
# @datasets.each do |data|
|
63
|
+
# g.data(data[0], data[1])
|
64
|
+
# end
|
65
|
+
#
|
66
|
+
# g.legend_font_size = font_size unless font_size.nil?
|
67
|
+
# g.write("test/output/pie_wrapped_legend_#{font_size}_#{width}.png")
|
68
|
+
# end
|
69
|
+
# end
|
70
|
+
# end
|
71
71
|
end
|
data/test/test_line.rb
CHANGED
@@ -5,28 +5,6 @@ require File.dirname(__FILE__) + "/gruff_test_case"
|
|
5
5
|
class TestGruffLine < GruffTestCase
|
6
6
|
|
7
7
|
# TODO Delete old output files once when starting tests
|
8
|
-
|
9
|
-
def setup
|
10
|
-
@datasets = [
|
11
|
-
[:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]],
|
12
|
-
[:Charles, [80, 54, 67, 54, 68, 70, 90, 95]],
|
13
|
-
[:Julie, [22, 29, 35, 38, 36, 40, 46, 57]],
|
14
|
-
[:Jane, [95, 95, 95, 90, 85, 80, 88, 100]],
|
15
|
-
[:Philip, [90, 34, 23, 12, 78, 89, 98, 88]],
|
16
|
-
["Arthur", [5, 10, 13, 11, 6, 16, 22, 32]],
|
17
|
-
]
|
18
|
-
|
19
|
-
@sample_labels = {
|
20
|
-
0 => '5/6',
|
21
|
-
1 => '5/15',
|
22
|
-
2 => '5/24',
|
23
|
-
3 => '5/30',
|
24
|
-
4 => '6/4',
|
25
|
-
5 => '6/12',
|
26
|
-
6 => '6/21',
|
27
|
-
7 => '6/28',
|
28
|
-
}
|
29
|
-
end
|
30
8
|
|
31
9
|
def test_line_graph_with_themes
|
32
10
|
line_graph_with_themes()
|
@@ -174,14 +152,16 @@ class TestGruffLine < GruffTestCase
|
|
174
152
|
|
175
153
|
|
176
154
|
def test_similar_high_end_values
|
155
|
+
@dataset = %w(29.43 29.459 29.498 29.53 29.548 29.589 29.619 29.66 29.689 29.849 29.878 29.74 29.769 29.79 29.808 29.828).collect {|i| i.to_f}
|
156
|
+
|
177
157
|
g = Gruff::Line.new
|
178
158
|
g.title = "Similar High End Values Test"
|
179
|
-
g.data('similar points',
|
159
|
+
g.data('similar points', @dataset )
|
180
160
|
g.write("test/output/line_similar_high_end_values.png")
|
181
161
|
|
182
162
|
g = Gruff::Line.new
|
183
163
|
g.title = "Similar High End Values With Floor"
|
184
|
-
g.data('similar points',
|
164
|
+
g.data('similar points', @dataset )
|
185
165
|
g.minimum_value = 0
|
186
166
|
g.y_axis_label = "Barometric Pressure"
|
187
167
|
g.write("test/output/line_similar_high_end_values_with_floor.png")
|
@@ -270,7 +250,7 @@ class TestGruffLine < GruffTestCase
|
|
270
250
|
|
271
251
|
def test_no_title
|
272
252
|
g = Gruff::Line.new(400)
|
273
|
-
g.labels = @
|
253
|
+
g.labels = @labels
|
274
254
|
@datasets.each do |data|
|
275
255
|
g.data(data[0], data[1])
|
276
256
|
end
|
@@ -441,7 +421,7 @@ protected
|
|
441
421
|
def line_graph_with_themes(size=nil)
|
442
422
|
g = Gruff::Line.new(size)
|
443
423
|
g.title = "Multi-Line Graph Test #{size}"
|
444
|
-
g.labels = @
|
424
|
+
g.labels = @labels
|
445
425
|
g.baseline_value = 90
|
446
426
|
@datasets.each do |data|
|
447
427
|
g.data(data[0], data[1])
|
@@ -451,7 +431,7 @@ protected
|
|
451
431
|
|
452
432
|
g = Gruff::Line.new(size)
|
453
433
|
g.title = "Multi-Line Graph Test #{size}"
|
454
|
-
g.labels = @
|
434
|
+
g.labels = @labels
|
455
435
|
g.baseline_value = 90
|
456
436
|
g.theme_37signals
|
457
437
|
@datasets.each do |data|
|
@@ -462,7 +442,7 @@ protected
|
|
462
442
|
|
463
443
|
g = Gruff::Line.new(size)
|
464
444
|
g.title = "Multi-Line Graph Test #{size}"
|
465
|
-
g.labels = @
|
445
|
+
g.labels = @labels
|
466
446
|
g.baseline_value = 90
|
467
447
|
g.theme_rails_keynote
|
468
448
|
@datasets.each do |data|
|
@@ -472,7 +452,7 @@ protected
|
|
472
452
|
|
473
453
|
g = Gruff::Line.new(size)
|
474
454
|
g.title = "Multi-Line Graph Test #{size}"
|
475
|
-
g.labels = @
|
455
|
+
g.labels = @labels
|
476
456
|
g.baseline_value = 90
|
477
457
|
g.theme_odeo
|
478
458
|
@datasets.each do |data|
|
@@ -481,16 +461,6 @@ protected
|
|
481
461
|
g.write("test/output/line_theme_odeo_#{size}.png")
|
482
462
|
end
|
483
463
|
|
484
|
-
def setup_basic_graph(size=800)
|
485
|
-
g = Gruff::Line.new(size)
|
486
|
-
g.title = "My Graph Title"
|
487
|
-
g.labels = @sample_labels
|
488
|
-
@datasets.each do |data|
|
489
|
-
g.data(data[0], data[1])
|
490
|
-
end
|
491
|
-
return g
|
492
|
-
end
|
493
|
-
|
494
464
|
def setup_pos_neg(size=800)
|
495
465
|
g = Gruff::Line.new(size)
|
496
466
|
g.title = "Pos/Neg Line Graph Test"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
require File.dirname(__FILE__) + "/gruff_test_case"
|
3
|
+
|
4
|
+
class TestMiniBar < GruffTestCase
|
5
|
+
|
6
|
+
def test_simple_bar
|
7
|
+
setup_single_dataset
|
8
|
+
g = setup_basic_graph(Gruff::Mini::Bar, 200)
|
9
|
+
write_test_file g, 'mini_bar.png'
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_simple_bar_wide_dataset
|
13
|
+
setup_wide_dataset
|
14
|
+
g = setup_basic_graph(Gruff::Mini::Bar, 200)
|
15
|
+
write_test_file g, 'mini_bar_wide_data.png'
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
|
2
|
+
require File.dirname(__FILE__) + "/gruff_test_case"
|
3
|
+
|
4
|
+
class TestSimpleSideBar < GruffTestCase
|
5
|
+
|
6
|
+
def test_simple_side_bar
|
7
|
+
@datasets = (1..5).map {|n| ['Auto', rand(11)]}
|
8
|
+
g = setup_basic_graph(Gruff::Mini::SideBar, 200)
|
9
|
+
write_test_file g, 'mini_side_bar.png'
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
data/test/test_pie.rb
CHANGED
@@ -100,7 +100,21 @@ class TestGruffPie < GruffTestCase
|
|
100
100
|
g.write("test/output/pie_legend_small.png")
|
101
101
|
end
|
102
102
|
|
103
|
+
|
104
|
+
def test_tiny_simple_pie
|
105
|
+
@datasets = (1..5).map {|n| ['Auto', [rand(100)]]}
|
103
106
|
|
107
|
+
g = setup_basic_graph 200
|
108
|
+
g.hide_legend = true
|
109
|
+
g.hide_title = true
|
110
|
+
g.hide_line_numbers = true
|
111
|
+
|
112
|
+
g.marker_font_size = 40.0
|
113
|
+
g.minimum_value = 0.0
|
114
|
+
|
115
|
+
write_test_file g, "pie_simple.png"
|
116
|
+
end
|
117
|
+
|
104
118
|
protected
|
105
119
|
|
106
120
|
def setup_basic_graph(size=800)
|
@@ -4,8 +4,6 @@ require File.dirname(__FILE__) + "/gruff_test_case"
|
|
4
4
|
|
5
5
|
class TestGruffSideStackedBar < GruffTestCase
|
6
6
|
|
7
|
-
# TODO Delete old output files once when starting tests
|
8
|
-
|
9
7
|
def setup
|
10
8
|
@datasets = [
|
11
9
|
[:Jimmy, [25, 36, 86, 39]],
|
@@ -60,6 +58,21 @@ class TestGruffSideStackedBar < GruffTestCase
|
|
60
58
|
g.write "test/output/side_stacked_bar_wide.png"
|
61
59
|
end
|
62
60
|
|
61
|
+
def test_should_space_long_left_labels_appropriately
|
62
|
+
g = Gruff::SideStackedBar.new
|
63
|
+
g.title = "Stacked Bar Long Label"
|
64
|
+
g.labels = {
|
65
|
+
0 => 'September',
|
66
|
+
1 => 'Oct',
|
67
|
+
2 => 'Nov',
|
68
|
+
3 => 'Dec',
|
69
|
+
}
|
70
|
+
@datasets.each do |data|
|
71
|
+
g.data(data[0], data[1])
|
72
|
+
end
|
73
|
+
g.write "test/output/side_stacked_bar_long_label.png"
|
74
|
+
end
|
75
|
+
|
63
76
|
protected
|
64
77
|
|
65
78
|
def setup_basic_graph(size=800)
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.
|
2
|
+
rubygems_version: 0.9.0
|
3
3
|
specification_version: 1
|
4
4
|
name: gruff
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.2.
|
7
|
-
date: 2006-
|
6
|
+
version: 0.2.5
|
7
|
+
date: 2006-10-26 00:00:00 -07:00
|
8
8
|
summary: Beautiful graphs for one or multiple datasets.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -26,6 +26,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
26
26
|
platform: ruby
|
27
27
|
signing_key:
|
28
28
|
cert_chain:
|
29
|
+
post_install_message:
|
29
30
|
authors:
|
30
31
|
- Geoffrey Grosenbach
|
31
32
|
files:
|
@@ -48,6 +49,10 @@ files:
|
|
48
49
|
- lib/gruff/side_stacked_bar.rb
|
49
50
|
- lib/gruff/spider.rb
|
50
51
|
- lib/gruff/stacked_bar.rb
|
52
|
+
- lib/gruff/mini/bar.rb
|
53
|
+
- lib/gruff/mini/pie.rb
|
54
|
+
- lib/gruff/mini/side_bar.rb
|
55
|
+
- lib/gruff/mini/legend.rb
|
51
56
|
- test/test_area.rb
|
52
57
|
- test/test_bar.rb
|
53
58
|
- test/test_base.rb
|
@@ -62,6 +67,9 @@ files:
|
|
62
67
|
- test/test_sidestacked_bar.rb
|
63
68
|
- test/test_spider.rb
|
64
69
|
- test/test_stacked_bar.rb
|
70
|
+
- test/test_mini_bar.rb
|
71
|
+
- test/test_mini_pie.rb
|
72
|
+
- test/test_mini_side_bar.rb
|
65
73
|
test_files: []
|
66
74
|
|
67
75
|
rdoc_options: []
|
@@ -80,7 +88,7 @@ dependencies:
|
|
80
88
|
version_requirement:
|
81
89
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
82
90
|
requirements:
|
83
|
-
- - "
|
91
|
+
- - ">="
|
84
92
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
93
|
+
version: 1.1.2
|
86
94
|
version:
|