gchart 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,79 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../helper")
2
+
3
+ describe GChart, ".expand_color" do
4
+ { "693" => "669933", "fff" => "ffffff", "000" => "000000" }.each do |_3_char_color, _6_char_color|
5
+ it "expands #{_3_char_color} into #{_6_char_color}" do
6
+ GChart.expand_color(_3_char_color).should == _6_char_color
7
+ end
8
+ end
9
+
10
+ { :red => "ff0000", :alice_blue => "f0f8ff", :yellow => "ffff00" }.each do |color_symbol, expanded|
11
+ it "expands #{color_symbol} into #{expanded}" do
12
+ GChart.expand_color(color_symbol).should == expanded
13
+ end
14
+ end
15
+
16
+ [ :canary_burnt_sienna, 3, 7.4, ['fff'], {'693' => 'cool'}, nil ].each do |non_color|
17
+ it "does not expand #{non_color}" do
18
+ GChart.expand_color(non_color).should == non_color
19
+ end
20
+ end
21
+
22
+ %w(669933 ffffff 000000).each do |_6_character_color|
23
+ it "does not expand #{_6_character_color}" do
24
+ GChart.expand_color(_6_character_color).should == _6_character_color
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ describe GChart, ".valid_color?" do
31
+ it "verifies a 3-hex-character rgb color definition as being valid" do
32
+ GChart.valid_color?('ffF').should == true
33
+ GChart.valid_color?('123').should == true
34
+ end
35
+
36
+ it "verifies a 6-hex-character rrggbb color definition as being valid" do
37
+ GChart.valid_color?('123fFf').should == true
38
+ GChart.valid_color?('a1B2c3').should == true
39
+ end
40
+
41
+ it "verifies an 8-hex-character rrggbbtt (transparency) color definition as being valid" do
42
+ GChart.valid_color?('123fffAa').should == true
43
+ GChart.valid_color?('a1b2c300').should == true
44
+ end
45
+
46
+ it "verifies a COLORS symbol color definition as being valid" do
47
+ GChart.valid_color?(:red).should == true
48
+ GChart.valid_color?(:slate_blue4).should == true
49
+ end
50
+
51
+ it "states as being invalid any non-String/non-Symbol" do
52
+ GChart.valid_color?([:purple]).should == false
53
+ GChart.valid_color?({:red => true}).should == false
54
+ GChart.valid_color?(true).should == false
55
+ GChart.valid_color?(7).should == false
56
+ GChart.valid_color?(99.99).should == false
57
+ GChart.valid_color?(Object.new).should == false
58
+ GChart.valid_color?(GChart.class).should == false
59
+ end
60
+
61
+ it "states as being invalid any String of length not equal to 3, 6 or 8" do
62
+ GChart.valid_color?('ab').should == false
63
+ GChart.valid_color?('abcd').should == false
64
+ GChart.valid_color?('abcde').should == false
65
+ GChart.valid_color?('abcdef1').should == false
66
+ GChart.valid_color?('abcdef123').should == false
67
+ end
68
+
69
+ it "states as being invalid any String of length equal to 3, 6 or 8 with non-hex characters" do
70
+ GChart.valid_color?('efg').should == false
71
+ GChart.valid_color?('bcdefg').should == false
72
+ GChart.valid_color?('abcdefZZ').should == false
73
+ end
74
+
75
+ it "states as being invalid any symbol which is not in the COLORS table" do
76
+ GChart.valid_color?(:awesome_blue).should == false
77
+ GChart.valid_color?(:burnt_cyborg).should == false
78
+ end
79
+ end
@@ -0,0 +1,56 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../helper")
2
+
3
+ describe GChart::Map do
4
+ before(:each) { @chart = GChart::Map.new }
5
+
6
+ it "initializes to a default area of 'world'" do
7
+ @chart.area.should == 'world'
8
+ end
9
+
10
+ it "defaults to maximum size of 440x220" do
11
+ @chart.size.should == '440x220'
12
+ end
13
+
14
+ it "renders the correct chart type" do
15
+ @chart.render_chart_type.should == "t"
16
+ end
17
+ end
18
+
19
+ describe GChart::Map, "#query_params" do
20
+ before(:each) { @chart = GChart::Map.new }
21
+
22
+ it "contains the chart's type" do
23
+ @chart.query_params["cht"].should == "t"
24
+ end
25
+
26
+ it "contains the map's area" do
27
+ @chart.area = "usa"
28
+ @chart.query_params.keys.include?("chtm").should be_true
29
+ @chart.query_params["chtm"].should == "usa"
30
+ end
31
+
32
+ it "defaults to a blank map" do
33
+ @chart.query_params["chd"].should =~ /^[es]:__?/
34
+ end
35
+
36
+ it "checks for a valid area" do
37
+ lambda { @chart.area = 'usa' }.should_not raise_error(ArgumentError)
38
+ lambda { @chart.area = 'mars' }.should raise_error(ArgumentError)
39
+ end
40
+
41
+ it "makes sure the areas have one value" do
42
+ @chart.data = [['NY',1],['VA',2],['WY',3]]
43
+ @chart.area_codes.length.should == @chart.data.size * 2
44
+ end
45
+ end
46
+
47
+ describe GChart::Map, "#data" do
48
+ it "accepts data as a hash or pair of arrays" do
49
+ lambda { GChart::Map.new(:data => {"VA"=>5}) }.should_not raise_error(ArgumentError)
50
+ lambda { GChart::Map.new(:data => {"VA"=>5, "NY"=>1}) }.should_not raise_error(ArgumentError)
51
+ lambda { GChart::Map.new(:data => [["VA",5],["NY",1]]) }.should_not raise_error(ArgumentError)
52
+ lambda { GChart::Map.new(:data => [["VA","NY"],[5,1]]) }.should raise_error(ArgumentError)
53
+ lambda { GChart::Map.new(:data => [1, 2, 3]) }.should raise_error(ArgumentError)
54
+ lambda { GChart::Map.new(:data => [[1, 2, 3]]) }.should raise_error(ArgumentError)
55
+ end
56
+ end
@@ -0,0 +1,48 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../helper")
2
+
3
+ describe GChart::Meter do
4
+ it "renders the correct chart type" do
5
+ GChart::Meter.new.render_chart_type.should == "gom"
6
+ end
7
+ end
8
+
9
+ describe GChart::Meter, "#query_params" do
10
+ before(:each) do
11
+ @meter = GChart::Meter.new
12
+ @meter.data = 50
13
+ end
14
+ it "encodes the data correctly" do
15
+ for data in [70, 70.0, "70", "70.0", "70%"] do
16
+ @meter.data = data
17
+ @meter.query_params["chd"].should == "t:70.0"
18
+ end
19
+ end
20
+ it "allows a label" do
21
+ @meter.label = "Label"
22
+ @meter.query_params.keys.include?("chl").should be_true
23
+ @meter.query_params["chl"].should == "Label"
24
+ end
25
+ it "allows a legend" do
26
+ @meter.legend = "Legend"
27
+ @meter.query_params.keys.include?("chl").should be_true
28
+ @meter.query_params["chl"].should == "Legend"
29
+ end
30
+ it "makes label take precedence over legend" do
31
+ @meter.legend = "Legend"
32
+ @meter.label = "Label"
33
+ @meter.query_params.keys.include?("chl").should be_true
34
+ @meter.query_params["chl"].should == "Label"
35
+ end
36
+ it "complains about more than one label" do
37
+ lambda { @meter.label = "set1" }.should_not raise_error(ArgumentError)
38
+ lambda { @meter.label = ["set1"] }.should_not raise_error(ArgumentError)
39
+ lambda { @meter.label = "set1|set2" }.should raise_error(ArgumentError)
40
+ lambda { @meter.label = ['set1','set2'] }.should raise_error(ArgumentError)
41
+ end
42
+ end
43
+
44
+ describe GChart::Map, "#render_data" do
45
+ it "allows only one data point" do
46
+ lambda { @meter.data = "set1" }.should_not raise_error(ArgumentError)
47
+ end
48
+ end
@@ -0,0 +1,12 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../helper")
2
+
3
+ describe GChart::Sparkline do
4
+ it "renders the correct chart type" do
5
+ GChart::Sparkline.new.render_chart_type.should == "ls"
6
+ end
7
+
8
+ it "defaults to 60x20" do
9
+ GChart::Sparkline.new.size.should == "60x20"
10
+ end
11
+ end
12
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gchart
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
@@ -9,19 +9,20 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-01-09 00:00:00 -08:00
12
+ date: 2008-05-11 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hoe
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - ">="
21
22
  - !ruby/object:Gem::Version
22
- version: 1.4.0
23
+ version: 1.5.1
23
24
  version:
24
- description: "== PROBLEMS/TODO * Add support fills (area or background), grid lines, shape markers, range markers * Support shorthand colors and color names * Make venn data specification friendlier There are lots of missing features. Until they're implemented, you can directly specify query parameters using the :extras key, e.g., # provides a legend for each data set g = GChart.line(:data => [[1, 2], [3, 4]], :extras => { \"chdl\" => \"First|Second\"})"
25
+ description: "== PROBLEMS/TODO * Add grid lines, linear stripes, shape markers, gradient fills * Make venn data specification friendlier * Make documentation more digestible There are lots of missing features. Until they're implemented, you can directly specify query parameters using the :extras key, e.g., # provides a legend for each data set g = GChart.line(:data => [[1, 2], [3, 4]], :extras => { \"chdl\" => \"First|Second\"})"
25
26
  email: jbarnette@rubyforge.org
26
27
  executables: []
27
28
 
@@ -37,21 +38,41 @@ files:
37
38
  - README.txt
38
39
  - Rakefile
39
40
  - lib/gchart.rb
41
+ - lib/gchart/axis.rb
42
+ - lib/gchart/axis/bottom_axis.rb
43
+ - lib/gchart/axis/horizontal_axis.rb
44
+ - lib/gchart/axis/left_axis.rb
45
+ - lib/gchart/axis/right_axis.rb
46
+ - lib/gchart/axis/top_axis.rb
47
+ - lib/gchart/axis/vertical_axis.rb
40
48
  - lib/gchart/bar.rb
41
49
  - lib/gchart/base.rb
50
+ - lib/gchart/colors.rb
42
51
  - lib/gchart/line.rb
52
+ - lib/gchart/map.rb
53
+ - lib/gchart/meter.rb
43
54
  - lib/gchart/pie.rb
44
55
  - lib/gchart/pie_3d.rb
45
56
  - lib/gchart/scatter.rb
57
+ - lib/gchart/sparkline.rb
46
58
  - lib/gchart/venn.rb
47
59
  - lib/gchart/xy_line.rb
48
60
  - lib/version.rb
61
+ - spec/gchart/axis/bottom_axis_spec.rb
62
+ - spec/gchart/axis/left_axis_spec.rb
63
+ - spec/gchart/axis/right_axis_spec.rb
64
+ - spec/gchart/axis/top_axis_spec.rb
65
+ - spec/gchart/axis_spec.rb
49
66
  - spec/gchart/bar_spec.rb
50
67
  - spec/gchart/base_spec.rb
68
+ - spec/gchart/colors_spec.rb
51
69
  - spec/gchart/line_spec.rb
70
+ - spec/gchart/map_spec.rb
71
+ - spec/gchart/meter_spec.rb
52
72
  - spec/gchart/pie_3d_spec.rb
53
73
  - spec/gchart/pie_spec.rb
54
74
  - spec/gchart/scatter_spec.rb
75
+ - spec/gchart/sparkline_spec.rb
55
76
  - spec/gchart/venn_spec.rb
56
77
  - spec/gchart/xy_line_spec.rb
57
78
  - spec/gchart_spec.rb
@@ -80,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
101
  requirements: []
81
102
 
82
103
  rubyforge_project: gchart
83
- rubygems_version: 1.0.1
104
+ rubygems_version: 1.1.1
84
105
  signing_key:
85
106
  specification_version: 2
86
107
  summary: GChart uses the Google Chart API to create pretty pictures.