google_visualr 0.0.1 → 2.0.0

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 (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