google_visualr 0.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/.gitignore +3 -0
  2. data/.rspec +2 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +4 -0
  5. data/Gemfile.lock +25 -0
  6. data/MIT-LICENSE +15 -14
  7. data/README.rdoc +59 -48
  8. data/Rakefile +9 -30
  9. data/google_visualr.gemspec +24 -0
  10. data/lib/google_visualr.rb +39 -0
  11. data/lib/google_visualr/base_chart.rb +40 -0
  12. data/lib/google_visualr/data_table.rb +277 -0
  13. data/lib/google_visualr/formatters.rb +78 -0
  14. data/lib/google_visualr/image/spark_line.rb +13 -0
  15. data/lib/google_visualr/interactive/annotated_time_line.rb +11 -0
  16. data/lib/google_visualr/interactive/area_chart.rb +13 -0
  17. data/lib/google_visualr/interactive/bar_chart.rb +13 -0
  18. data/lib/google_visualr/interactive/candlestick_chart.rb +13 -0
  19. data/lib/google_visualr/interactive/column_chart.rb +13 -0
  20. data/lib/google_visualr/interactive/combo_chart.rb +13 -0
  21. data/lib/google_visualr/interactive/gauge.rb +11 -0
  22. data/lib/google_visualr/interactive/geo_chart.rb +11 -0
  23. data/lib/google_visualr/interactive/intensity_map.rb +11 -0
  24. data/lib/google_visualr/interactive/line_chart.rb +13 -0
  25. data/lib/google_visualr/interactive/map.rb +11 -0
  26. data/lib/google_visualr/interactive/motion_chart.rb +11 -0
  27. data/lib/google_visualr/interactive/org_chart.rb +11 -0
  28. data/lib/google_visualr/interactive/pie_chart.rb +13 -0
  29. data/lib/google_visualr/interactive/scatter_chart.rb +13 -0
  30. data/lib/google_visualr/interactive/table.rb +11 -0
  31. data/lib/google_visualr/interactive/treemap.rb +11 -0
  32. data/lib/google_visualr/packages.rb +30 -0
  33. data/lib/google_visualr/param_helpers.rb +50 -0
  34. data/lib/google_visualr/version.rb +3 -0
  35. data/spec/google_visualr/base_chart_spec.rb +55 -0
  36. data/spec/google_visualr/data_table_spec.rb +251 -0
  37. data/spec/google_visualr/formatters_spec.rb +104 -0
  38. data/spec/spec_helper.rb +8 -0
  39. data/test/google_visualr_spec.rb +7 -0
  40. data/test/helper.rb +18 -0
  41. metadata +73 -36
  42. data/VERSION +0 -1
  43. data/init.rb +0 -17
  44. data/install.rb +0 -1
  45. data/lib/annotated_time_line.rb +0 -50
  46. data/lib/area_chart.rb +0 -54
  47. data/lib/bar_chart.rb +0 -53
  48. data/lib/base_chart.rb +0 -285
  49. data/lib/column_chart.rb +0 -53
  50. data/lib/formatters.rb +0 -184
  51. data/lib/gauge.rb +0 -36
  52. data/lib/geo_map.rb +0 -32
  53. data/lib/image_spark_line.rb +0 -36
  54. data/lib/intensity_map.rb +0 -29
  55. data/lib/line_chart.rb +0 -54
  56. data/lib/map.rb +0 -31
  57. data/lib/motion_chart.rb +0 -36
  58. data/lib/org_chart.rb +0 -29
  59. data/lib/pie_chart.rb +0 -44
  60. data/lib/scatter_chart.rb +0 -52
  61. data/lib/table.rb +0 -39
  62. data/uninstall.rb +0 -1
@@ -0,0 +1,251 @@
1
+ require 'spec_helper'
2
+
3
+ describe GoogleVisualr::DataTable do
4
+
5
+ def valid_object
6
+
7
+ @cols = [
8
+ { :id => 'A', :label => 'NEW A' , :type => 'string' },
9
+ { :id => 'B', :label => 'B-label', :type => 'number' },
10
+ { :id => 'C', :label => 'C-label', :type => 'date' }
11
+ ]
12
+ @rows = [
13
+ { :c => [ {:v => 'a'}, {:v => 1.0, :f => 'One'} , {:v => Date.parse('2008-02-28 00:31:26'), :f => '2/28/08 12:31 AM'} ] },
14
+ { :c => [ {:v => 'b'}, {:v => 2.0, :f => 'Two'} , {:v => Date.parse('2008-03-30 00:31:26'), :f => '3/30/08 12:31 AM'} ] },
15
+ { :c => [ {:v => 'c'}, {:v => 3.0, :f => 'Three'}, {:v => Date.parse('2008-04-30 00:31:26'), :f => '4/30/08 12:31 AM'} ] }
16
+ ]
17
+ GoogleVisualr::DataTable.new({:cols => @cols, :rows => @rows})
18
+
19
+ end
20
+
21
+ describe "#new" do
22
+ it "initializes without params" do
23
+ dt = GoogleVisualr::DataTable.new
24
+ dt.should_not be_nil
25
+ dt.cols.should be_a_kind_of Array
26
+ dt.rows.should be_a_kind_of Array
27
+ end
28
+
29
+ it "initializes with params" do
30
+ dt = valid_object
31
+
32
+ @cols.size.times do |i|
33
+ dt.cols[i].should == @cols[i]
34
+ end
35
+
36
+ @rows.size.times do |i|
37
+ @cols.size.times do |j|
38
+ cell = dt.rows[i][j]
39
+ cell.should be_a_kind_of GoogleVisualr::DataTable::Cell
40
+ cell.v.should == @rows[i][:c][j][:v]
41
+ cell.f.should == @rows[i][:c][j][:f]
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "#new_column" do
48
+ it "initializes a new column with only type param" do
49
+ dt = GoogleVisualr::DataTable.new
50
+ dt.new_column('string')
51
+ dt.cols.first.should == {:id => '', :label => '', :type => 'string'}
52
+ end
53
+
54
+ it "initializes a new column with all params" do
55
+ dt = GoogleVisualr::DataTable.new
56
+ dt.new_column('string', 'A LABEL', 'col_0')
57
+ dt.cols.first.should == {:id => 'col_0', :label => 'A LABEL', :type => 'string'}
58
+ end
59
+ end
60
+
61
+ describe "new_columns" do
62
+ it "initializes new columns" do
63
+ columns = [ {:id => 'A', :label => 'NEW A', :type => 'string'}, {:id => 'B', :label => 'NEW B', :type => 'string'} ]
64
+
65
+ dt = GoogleVisualr::DataTable.new
66
+ dt.new_columns(columns)
67
+ dt.cols.first.should == columns.first
68
+ dt.cols.last.should == columns.last
69
+ end
70
+ end
71
+
72
+ context "column values" do
73
+ before do
74
+ @dt = GoogleVisualr::DataTable.new
75
+ @dt.new_column({:type => 'number'})
76
+ @dt.set_column(0, [1,2,3])
77
+ end
78
+
79
+ describe "#set_column" do
80
+ it "sets a column of values to column #index" do
81
+ @dt.rows[0][0].v.should == 1
82
+ @dt.rows[1][0].v.should == 2
83
+ @dt.rows[2][0].v.should == 3
84
+ end
85
+ end
86
+
87
+ describe "#get_column" do
88
+ it "retrieves values in column #index" do
89
+ @dt.get_column(0).should == [1,2,3]
90
+ end
91
+ end
92
+ end
93
+
94
+ context "row values" do
95
+ before do
96
+ @dt = GoogleVisualr::DataTable.new
97
+ @dt.new_columns( [ {:type => 'number'}, {:type => 'string'} ] )
98
+ @dt.rows.should be_empty
99
+ end
100
+
101
+ describe "#add_row" do
102
+ context "when param is empty" do
103
+ it "adds an empty row to the data_table" do
104
+ @dt.add_row
105
+ @dt.rows.size.should == 1
106
+ @dt.rows[0].should be_empty
107
+ end
108
+ end
109
+
110
+ context "when param is not empty" do
111
+ it "adds the row values to the data_table" do
112
+ @dt.add_row([1, 'A'])
113
+ @dt.rows.size.should == 1
114
+ @dt.rows[0][0].v.should == 1
115
+ @dt.rows[0][1].v.should == 'A'
116
+ end
117
+ end
118
+ end
119
+
120
+
121
+ describe "#add_rows" do
122
+ context "when param is number" do
123
+ it "adds x number of empty rows to the data_table" do
124
+ @dt.add_rows(2)
125
+ @dt.rows.size.should == 2
126
+ @dt.rows[0].should be_empty
127
+ @dt.rows[1].should be_empty
128
+ end
129
+ end
130
+
131
+ context "when param is an array" do
132
+ it "adds the rows to the data_table" do
133
+ @dt.add_rows( [ [1, 'A'], [2, 'B'] ] )
134
+ @dt.rows.size.should == 2
135
+
136
+ @dt.rows[0][0].v.should == 1
137
+ @dt.rows[0][1].v.should == 'A'
138
+ @dt.rows[1][0].v.should == 2
139
+ @dt.rows[1][1].v.should == 'B'
140
+ end
141
+ end
142
+ end
143
+
144
+ describe "@get_row" do
145
+ it "retrieves values in row #index" do
146
+ @dt.add_rows( [ [1, 'A'], [2, 'B'] ] )
147
+ @dt.rows.size.should == 2
148
+
149
+ @dt.get_row(0).should == [1, 'A']
150
+ @dt.get_row(1).should == [2, 'B']
151
+ end
152
+ end
153
+ end
154
+
155
+ context "cell value" do
156
+ before do
157
+ @dt = GoogleVisualr::DataTable.new
158
+ @dt.new_columns( [ {:type => 'number'}, {:type => 'string'} ] )
159
+ @dt.add_row
160
+ end
161
+
162
+
163
+ describe "#set_cell" do
164
+ it "sets cell" do
165
+ @dt.set_cell(0, 0, 1000)
166
+ @dt.set_cell(0, 1, 'ABCD')
167
+
168
+ @dt.get_row(0).should == [1000, 'ABCD']
169
+ end
170
+
171
+ it "raises an exception if the row_index or column_index specified is out of range" do
172
+ expect {
173
+ @dt.set_cell(5, 0, 1000)
174
+ }.to raise_exception(RangeError)
175
+
176
+ expect {
177
+ @dt.set_cell(0, 5, 1000)
178
+ }.to raise_exception(RangeError)
179
+ end
180
+
181
+ it "raises an exception if the value does not correspond to its column type" do
182
+ expect {
183
+ @dt.set_cell(0, 0, 'ABCD')
184
+ }.to raise_exception(ArgumentError)
185
+
186
+ expect {
187
+ @dt.set_cell(0, 1, 1234)
188
+ }.to raise_exception(ArgumentError)
189
+ end
190
+ end
191
+
192
+ describe "#get_cell" do
193
+ it "gets cell" do
194
+ @dt.set_cell(0, 0, 1000)
195
+ @dt.get_cell(0, 0).should == 1000
196
+ end
197
+
198
+ it "raises an exception if the row_index or column_index specified is out of range" do
199
+ expect {
200
+ @dt.get_cell(0, 5)
201
+ }.to raise_exception(RangeError)
202
+
203
+ expect {
204
+ @dt.get_cell(5, 0)
205
+ }.to raise_exception(RangeError)
206
+ end
207
+ end
208
+ end
209
+
210
+ describe "#to_js" do
211
+ it "converts object to js string" do
212
+ dt = valid_object
213
+ js = dt.to_js
214
+ js.should match /google.visualization.DataTable/i
215
+ js.should match /addColumn/i
216
+ js.should match /addRow/i
217
+ end
218
+ end
219
+
220
+ describe "Cell" do
221
+ describe "#new" do
222
+ it "initializes with a value" do
223
+ cell = GoogleVisualr::DataTable::Cell.new(1)
224
+ cell.v.should == 1
225
+ end
226
+
227
+ it "initializes with a hash" do
228
+ cell = GoogleVisualr::DataTable::Cell.new({:v => 1, :f => "1.0", :p => "{style: 'border: 1px solid green;'}"})
229
+ cell.v.should == 1
230
+ cell.f.should == "1.0"
231
+ cell.p.should == "{style: 'border: 1px solid green;'}"
232
+ end
233
+ end
234
+
235
+ describe "#to_js" do
236
+ context "initialized with a value" do
237
+ it "returns a json string" do
238
+ cell = GoogleVisualr::DataTable::Cell.new(1)
239
+ cell.to_js.should == "{v: 1}"
240
+ end
241
+ end
242
+
243
+ context "initialized with a hash" do
244
+ it "returns a json string" do
245
+ cell = GoogleVisualr::DataTable::Cell.new({:v => 1, :f => "1.0", :p => "{style: 'border: 1px solid green;'}"})
246
+ cell.to_js.should == "{v: 1, f: '1.0', p: {style: 'border: 1px solid green;'}}"
247
+ end
248
+ end
249
+ end
250
+ end
251
+ end
@@ -0,0 +1,104 @@
1
+ require 'spec_helper'
2
+
3
+ describe GoogleVisualr::Formatter do
4
+ def valid_object(params={})
5
+ GoogleVisualr::Formatter.new(params)
6
+ end
7
+
8
+ describe "#new" do
9
+ it "initializes without params" do
10
+ valid_object.instance_variable_get(:@options).should be_empty
11
+ end
12
+
13
+ it "initializes with params" do
14
+ formatter = valid_object( { :width => "150px" } )
15
+ formatter.instance_variable_get(:@options).should == { :width => "150px" }
16
+ end
17
+ end
18
+
19
+ describe "#columns" do
20
+ it "sets columns" do
21
+ formatter = valid_object
22
+ formatter.columns(0)
23
+ formatter.instance_variable_get(:@columns).should == [0]
24
+ formatter.columns(1,2)
25
+ formatter.instance_variable_get(:@columns).should == [1,2]
26
+ end
27
+ end
28
+
29
+ describe "#options" do
30
+ it "sets options" do
31
+ formatter = valid_object
32
+ formatter.options( :width => "150px", :height => "150px" )
33
+ formatter.instance_variable_get(:@options).should == { "width" => "150px", "height" => "150px" }
34
+ end
35
+ end
36
+
37
+ context "GoogleVisualr::ArrowFormat" do
38
+ describe "#to_js" do
39
+ it "works" do
40
+ formatter = GoogleVisualr::ArrowFormat.new(:base => 100)
41
+ formatter.columns(1)
42
+ formatter.to_js.should == "\nvar formatter = new google.visualization.ArrowFormat({base: 100});\nformatter.format(data_table, 1);"
43
+ end
44
+ end
45
+ end
46
+
47
+ context "GoogleVisualr::BarFormat" do
48
+ describe "#to_js" do
49
+ it "works" do
50
+ formatter = GoogleVisualr::BarFormat.new(:base => 100, :colorNegative => 'red', :colorPositive => 'green', :drawZeroLine => false, :max => 1000, :min => -1000, :showValue => false, :width => '150px')
51
+ formatter.columns(1)
52
+ formatter.to_js.should == "\nvar formatter = new google.visualization.BarFormat({base: 100, colorNegative: 'red', colorPositive: 'green', drawZeroLine: false, max: 1000, min: -1000, showValue: false, width: '150px'});\nformatter.format(data_table, 1);"
53
+ end
54
+ end
55
+ end
56
+
57
+ context "GoogleVisualr::ColorFormat" do
58
+ describe "#add_range" do
59
+ it "sets color range" do
60
+ formatter = GoogleVisualr::ColorFormat.new
61
+ formatter.add_range(20000, nil, 'red', '#333333')
62
+ formatter.ranges.should == [ {:from => 20000, :to => nil , :color => "red", :bgcolor => "#333333"} ]
63
+ end
64
+ end
65
+
66
+ describe "#add_gradient_range" do
67
+ it "sets gradient color range" do
68
+ formatter = GoogleVisualr::ColorFormat.new
69
+ formatter.add_gradient_range(20000, nil, 'red', '#FFFFFF', '#333333')
70
+ formatter.gradient_ranges.should == [ {:from => 20000, :to => nil , :color => "red", :fromBgColor => "#FFFFFF", :toBgColor => "#333333"} ]
71
+ end
72
+ end
73
+
74
+ describe "#to_js" do
75
+ it "works" do
76
+ formatter = GoogleVisualr::ColorFormat.new
77
+ formatter.add_range(0, 1000, 'red', '#000000')
78
+ formatter.add_gradient_range(2000, nil, 'blue', '#FFFFFF', '#333333')
79
+ formatter.columns(1)
80
+ formatter.to_js.should == "\nvar formatter = new google.visualization.ColorFormat();\nformatter.addRange(0, 1000, 'red', '#000000');\nformatter.addGradientRange(2000, null, 'blue', '#FFFFFF', '#333333');\nformatter.format(data_table, 1);"
81
+ end
82
+ end
83
+ end
84
+
85
+ context "GoogleVisualr::DateFormat" do
86
+ describe "#to_js" do
87
+ it "works" do
88
+ formatter = GoogleVisualr::DateFormat.new(:formatType => 'long', :timeZone => 8)
89
+ formatter.columns(1)
90
+ formatter.to_js.should == "\nvar formatter = new google.visualization.DateFormat({formatType: 'long', timeZone: 8});\nformatter.format(data_table, 1);"
91
+ end
92
+ end
93
+ end
94
+
95
+ context "GoogleVisualr::NumberFormat" do
96
+ describe "#to_js" do
97
+ it "works" do
98
+ formatter = GoogleVisualr::NumberFormat.new(:decimalSymbol => '.', :fractionDigits => 4, :groupingSymbol => ',', :negativeColor => 'red', :negativeParens => false, :prefix => 'USD$', :suffix => '-')
99
+ formatter.columns(1)
100
+ formatter.to_js.should == "\nvar formatter = new google.visualization.NumberFormat({decimalSymbol: '.', fractionDigits: 4, groupingSymbol: ',', negativeColor: 'red', negativeParens: false, prefix: 'USD$', suffix: '-'});\nformatter.format(data_table, 1);"
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'google_visualr'
5
+
6
+ RSpec.configure do |config|
7
+ # some (optional) config here
8
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestGoogleVisualr2 < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ require 'google_visualr2'
16
+
17
+ class Test::Unit::TestCase
18
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_visualr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ prerelease:
5
+ version: 2.0.0
5
6
  platform: ruby
6
7
  authors:
7
8
  - Winston Teo
@@ -9,12 +10,33 @@ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2011-02-06 00:00:00 +08:00
13
- default_executable:
14
- dependencies: []
15
-
16
- description:
17
- email: winston.yongwei+spam at gmail.com
13
+ date: 2011-07-01 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.15
24
+ type: :development
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 2.6.0
35
+ type: :development
36
+ version_requirements: *id002
37
+ description: This Ruby gem, GoogleVisualr, is a wrapper around the Google Chart Tools that allows anyone to create the same beautiful charts with just Ruby; you don't have to write any JavaScript at all.
38
+ email:
39
+ - winston.yongwei+google_visualr@gmail.com
18
40
  executables: []
19
41
 
20
42
  extensions: []
@@ -22,32 +44,47 @@ extensions: []
22
44
  extra_rdoc_files:
23
45
  - README.rdoc
24
46
  files:
47
+ - .gitignore
48
+ - .rspec
49
+ - .rvmrc
25
50
  - CHANGELOG
26
- - init.rb
27
- - install.rb
51
+ - Gemfile
52
+ - Gemfile.lock
28
53
  - MIT-LICENSE
29
- - Rakefile
30
54
  - README.rdoc
31
- - uninstall.rb
32
- - VERSION
33
- - lib/annotated_time_line.rb
34
- - lib/area_chart.rb
35
- - lib/bar_chart.rb
36
- - lib/base_chart.rb
37
- - lib/column_chart.rb
38
- - lib/formatters.rb
39
- - lib/gauge.rb
40
- - lib/geo_map.rb
41
- - lib/image_spark_line.rb
42
- - lib/intensity_map.rb
43
- - lib/line_chart.rb
44
- - lib/map.rb
45
- - lib/motion_chart.rb
46
- - lib/org_chart.rb
47
- - lib/pie_chart.rb
48
- - lib/scatter_chart.rb
49
- - lib/table.rb
50
- has_rdoc: true
55
+ - Rakefile
56
+ - google_visualr.gemspec
57
+ - lib/google_visualr.rb
58
+ - lib/google_visualr/base_chart.rb
59
+ - lib/google_visualr/data_table.rb
60
+ - lib/google_visualr/formatters.rb
61
+ - lib/google_visualr/image/spark_line.rb
62
+ - lib/google_visualr/interactive/annotated_time_line.rb
63
+ - lib/google_visualr/interactive/area_chart.rb
64
+ - lib/google_visualr/interactive/bar_chart.rb
65
+ - lib/google_visualr/interactive/candlestick_chart.rb
66
+ - lib/google_visualr/interactive/column_chart.rb
67
+ - lib/google_visualr/interactive/combo_chart.rb
68
+ - lib/google_visualr/interactive/gauge.rb
69
+ - lib/google_visualr/interactive/geo_chart.rb
70
+ - lib/google_visualr/interactive/intensity_map.rb
71
+ - lib/google_visualr/interactive/line_chart.rb
72
+ - lib/google_visualr/interactive/map.rb
73
+ - lib/google_visualr/interactive/motion_chart.rb
74
+ - lib/google_visualr/interactive/org_chart.rb
75
+ - lib/google_visualr/interactive/pie_chart.rb
76
+ - lib/google_visualr/interactive/scatter_chart.rb
77
+ - lib/google_visualr/interactive/table.rb
78
+ - lib/google_visualr/interactive/treemap.rb
79
+ - lib/google_visualr/packages.rb
80
+ - lib/google_visualr/param_helpers.rb
81
+ - lib/google_visualr/version.rb
82
+ - spec/google_visualr/base_chart_spec.rb
83
+ - spec/google_visualr/data_table_spec.rb
84
+ - spec/google_visualr/formatters_spec.rb
85
+ - spec/spec_helper.rb
86
+ - test/google_visualr_spec.rb
87
+ - test/helper.rb
51
88
  homepage: https://github.com/winston/google_visualr
52
89
  licenses: []
53
90
 
@@ -57,23 +94,23 @@ rdoc_options: []
57
94
  require_paths:
58
95
  - lib
59
96
  required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
60
98
  requirements:
61
99
  - - ">="
62
100
  - !ruby/object:Gem::Version
63
101
  version: "0"
64
- version:
65
102
  required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
66
104
  requirements:
67
105
  - - ">="
68
106
  - !ruby/object:Gem::Version
69
- version: "0"
70
- version:
107
+ version: 1.3.6
71
108
  requirements: []
72
109
 
73
- rubyforge_project:
74
- rubygems_version: 1.3.5
110
+ rubyforge_project: google_visualr
111
+ rubygems_version: 1.8.5
75
112
  signing_key:
76
113
  specification_version: 3
77
- summary: Wrapper around the Google Visualization API.
114
+ summary: A Ruby wrapper around the Google Chart Tools that allows anyone to create the same beautiful charts with just plain Ruby.
78
115
  test_files: []
79
116