gruff 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|