google_visualr 2.0.1 → 2.0.2

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- google_visualr (2.0)
4
+ google_visualr (2.0.2)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -43,6 +43,7 @@ module GoogleVisualr
43
43
  #
44
44
  # * v [Optional] The cell value. The data type should match the column data type.
45
45
  # * f [Optional] A string version of the v value, formatted strictly for display only. If omitted, a string version of v will be used.
46
+ # * p [Optional] An object that is a map of custom values applied to the cell. Example: :p => { :style => 'border: 1px solid green;' }.
46
47
  #
47
48
  # Cells in the row array should be in the same order as their column descriptions in cols.
48
49
  #
@@ -74,7 +75,7 @@ module GoogleVisualr
74
75
  # - 'boolean' : Boolean value ('true' or 'false'). Example values: v: true
75
76
  # * label [Optional] A string value that some visualizations display for this column. Example: label:'Height'
76
77
  # * id [Optional] A unique (basic alphanumeric) string ID of the column. Be careful not to choose a JavaScript keyword. Example: id:'col_1'
77
- def new_column(type, label="", id ="")
78
+ def new_column(type, label=nil, id =nil)
78
79
  @cols << { :type => type, :label => label, :id => id }
79
80
  end
80
81
 
@@ -199,12 +200,16 @@ module GoogleVisualr
199
200
  js = "var data_table = new google.visualization.DataTable();"
200
201
 
201
202
  @cols.each do |column|
202
- js << "data_table.addColumn('#{column[:type]}', '#{column[:label]}', '#{column[:id]}');"
203
+ js << "data_table.addColumn('"
204
+ js << "#{column[:type]}'"
205
+ js << ", '#{column[:label]}'" unless column[:label].nil?
206
+ js << ", '#{column[:id]}'" unless column[:id].nil?
207
+ js << ");"
203
208
  end
204
209
 
205
210
  @rows.each do |row|
206
211
  js << "data_table.addRow("
207
- js << "[ #{row.collect { |cell| cell.to_js }.join(", ")} ]" unless row.empty?
212
+ js << "[#{row.collect { |cell| cell.to_js }.join(", ")}]" unless row.empty?
208
213
  js << ");"
209
214
  end
210
215
 
@@ -240,7 +245,6 @@ module GoogleVisualr
240
245
  end
241
246
  end
242
247
 
243
-
244
248
  class Cell
245
249
  include GoogleVisualr::ParamHelpers
246
250
 
@@ -261,10 +265,12 @@ module GoogleVisualr
261
265
  end
262
266
 
263
267
  def to_js
268
+ return "null" if @v.nil? && @f.nil? && @p.nil?
269
+
264
270
  js = "{"
265
271
  js << "v: #{typecast(@v)}"
266
- js << ", f: '#{@f}'" unless @f.nil?
267
- js << ", p: #{@p}" unless @p.nil?
272
+ js << ", f: '#{@f}'" unless @f.nil?
273
+ js << ", p: #{typecast(@p)}" unless @p.nil?
268
274
  js << "}"
269
275
 
270
276
  js
@@ -1,3 +1,3 @@
1
1
  module GoogleVisualr
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
@@ -48,7 +48,7 @@ describe GoogleVisualr::DataTable do
48
48
  it "initializes a new column with only type param" do
49
49
  dt = GoogleVisualr::DataTable.new
50
50
  dt.new_column('string')
51
- dt.cols.first.should == {:id => '', :label => '', :type => 'string'}
51
+ dt.cols.first.should == {:id => nil, :label => nil, :type => 'string'}
52
52
  end
53
53
 
54
54
  it "initializes a new column with all params" do
@@ -208,6 +208,24 @@ describe GoogleVisualr::DataTable do
208
208
  end
209
209
 
210
210
  describe "#to_js" do
211
+ context "cols" do
212
+ it "includes :id and :label when these are specified" do
213
+ data_table = GoogleVisualr::DataTable.new()
214
+ data_table.new_column("Total", "Total", "1")
215
+ data_table.add_row([1])
216
+
217
+ data_table.to_js.should == "var data_table = new google.visualization.DataTable();data_table.addColumn('Total', 'Total', '1');data_table.addRow([{v: 1}]);"
218
+ end
219
+
220
+ it "excludes :id and :label when these are not specified" do
221
+ data_table = GoogleVisualr::DataTable.new()
222
+ data_table.new_column("Total")
223
+ data_table.add_row([1])
224
+
225
+ data_table.to_js.should == "var data_table = new google.visualization.DataTable();data_table.addColumn('Total');data_table.addRow([{v: 1}]);"
226
+ end
227
+ end
228
+
211
229
  it "converts object to js string" do
212
230
  dt = valid_object
213
231
  js = dt.to_js
@@ -221,14 +239,14 @@ describe GoogleVisualr::DataTable do
221
239
  describe "#new" do
222
240
  it "initializes with a value" do
223
241
  cell = GoogleVisualr::DataTable::Cell.new(1)
224
- cell.v.should == 1
242
+ cell.v.should == 1
225
243
  end
226
244
 
227
245
  it "initializes with a hash" do
228
- cell = GoogleVisualr::DataTable::Cell.new({:v => 1, :f => "1.0", :p => "{style: 'border: 1px solid green;'}"})
246
+ cell = GoogleVisualr::DataTable::Cell.new( { :v => 1, :f => "1.0", :p => {:style => 'border: 1px solid green;'} } )
229
247
  cell.v.should == 1
230
248
  cell.f.should == "1.0"
231
- cell.p.should == "{style: 'border: 1px solid green;'}"
249
+ cell.p.should == {:style => 'border: 1px solid green;'}
232
250
  end
233
251
  end
234
252
 
@@ -238,13 +256,23 @@ describe GoogleVisualr::DataTable do
238
256
  cell = GoogleVisualr::DataTable::Cell.new(1)
239
257
  cell.to_js.should == "{v: 1}"
240
258
  end
259
+
260
+ it "returns 'null' when v is nil" do
261
+ cell = GoogleVisualr::DataTable::Cell.new(nil)
262
+ cell.to_js.should == "null"
263
+ end
241
264
  end
242
265
 
243
266
  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;'}"})
267
+ it "returns a json string when v is present" do
268
+ cell = GoogleVisualr::DataTable::Cell.new( { :v => 1, :f => "1.0", :p => {:style => 'border: 1px solid green;'} } )
246
269
  cell.to_js.should == "{v: 1, f: '1.0', p: {style: 'border: 1px solid green;'}}"
247
270
  end
271
+
272
+ it "returns a json string when v is nil" do
273
+ cell = GoogleVisualr::DataTable::Cell.new( { :v => nil, :f => "-", :p => {:style => 'border: 1px solid red;'} } )
274
+ cell.to_js.should == "{v: null, f: '-', p: {style: 'border: 1px solid red;'}}"
275
+ end
248
276
  end
249
277
  end
250
278
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: google_visualr
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.0.1
5
+ version: 2.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Winston Teo
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-01 00:00:00 Z
13
+ date: 2011-07-03 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler