google_otg 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/google_otg.gemspec +2 -2
  3. data/lib/google_otg.rb +53 -33
  4. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.11
1
+ 1.0.12
data/google_otg.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{google_otg}
8
- s.version = "1.0.11"
8
+ s.version = "1.0.12"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["esilverberg"]
12
- s.date = %q{2009-10-01}
12
+ s.date = %q{2009-10-05}
13
13
  s.description = %q{Include Google's Over Time Graph in your app}
14
14
  s.email = %q{eric@ericsilverberg.com}
15
15
  s.extra_rdoc_files = [
data/lib/google_otg.rb CHANGED
@@ -22,7 +22,7 @@ module GoogleOtg
22
22
  data = []
23
23
 
24
24
  if hits[0].is_a?(Array)
25
- shape_markers = [['o','0000ff',0,'-1.0',6],['o','FF6600',1,'-1.0',6]]
25
+ shape_markers = [['D','6699CC',0,'-1.0',4],['D','FF9933',1,'-1.0',2],['o','0000ff',0,'-1.0',8],['o','FF6600',1,'-1.0',8]]
26
26
  line_colors = ['6699CC','FF9933']
27
27
 
28
28
  hits.map{|h|
@@ -33,8 +33,8 @@ module GoogleOtg
33
33
  }
34
34
 
35
35
  else
36
- shape_markers = ['o','0000ff',0,'-1.0',6]
37
- line_colors = '6699CC'
36
+ shape_markers = [['D','6699CC',0,'-1.0',4],['o','0000ff',0,'-1.0',8]]
37
+ line_colors = ['6699CC']
38
38
 
39
39
  converted = hits_to_gchart_range(hits, args)
40
40
  data.push(converted[:points])
@@ -65,7 +65,11 @@ module GoogleOtg
65
65
  height = args.has_key?(:height) ? args[:height] : 125
66
66
  src = args.has_key?(:src) ? args[:src] : "http://www.google.com/analytics/static/flash/OverTimeGraph.swf"
67
67
 
68
- range = hits_to_otg_range(hits, args)
68
+ if hits.is_a?(Array) and hits[0].is_a?(Array)
69
+ range = hits.map{|h| hits_to_otg_range(h, args) }
70
+ else
71
+ range = [hits_to_otg_range(hits, args)]
72
+ end
69
73
  vars = range_to_flashvars(range)
70
74
 
71
75
  html = <<-eos
@@ -286,17 +290,50 @@ eos
286
290
  end
287
291
  protected :hits_to_range
288
292
 
289
- def range_to_flashvars(args = {})
290
- x_labels = args[:x_labels]
291
- y_labels = args[:y_labels]
292
- label = args[:label]
293
- points = args[:points]
293
+
294
+ PRIMARY_STYLE = {
295
+ :PointShape => "CIRCLE",
296
+ :PointRadius => 9,
297
+ :FillColor => 30668,
298
+ :FillAlpha => 10,
299
+ :LineThickness => 4,
300
+ :ActiveColor => 30668,
301
+ :InactiveColor => 11654895
302
+ }
303
+
304
+ COMPARE_STYLE = {
305
+ :PointShape => "CIRCLE",
306
+ :PointRadius => 6,
307
+ :FillAlpha => 10,
308
+ :LineThickness => 2,
309
+ :ActiveColor => 16750848,
310
+ :InactiveColor => 16750848
311
+ }
312
+
313
+ def setup_series(args, style)
314
+ raise ArgumentError unless args[:label]
315
+ raise ArgumentError unless args[:points]
316
+ raise ArgumentError unless args[:y_labels]
294
317
 
318
+ return {
319
+ :SelectionStartIndex => 0,
320
+ :SelectionEndIndex => args[:points].length,
321
+ :Style => style,
322
+ :Label => args[:label],
323
+ :Id => "primary",
324
+ :YLabels => args[:y_labels],
325
+ :ValueCategory => "visits",
326
+ :Points => args[:points]
327
+ } # end graph
328
+ end
329
+ protected :setup_series
330
+
331
+ def range_to_flashvars(args = {})
332
+ raise ArgumentError unless args.length > 0
333
+ x_labels = args[0][:x_labels]
295
334
  raise ArgumentError unless x_labels
296
- raise ArgumentError unless y_labels
297
- raise ArgumentError unless label
298
- raise ArgumentError unless points
299
335
 
336
+ ct = 0
300
337
  # this is the structure necessary to support the Google Analytics OTG
301
338
 
302
339
  options = {:Graph => {
@@ -308,29 +345,12 @@ eos
308
345
  :XAxisLabels => x_labels,
309
346
  :HoverType => "primary_compare",
310
347
  :SelectedSeries => ["primary", "compare"],
311
- :Series => [
312
- {
313
- :SelectionStartIndex => 0,
314
- :SelectionEndIndex => points.length,
315
- :Style =>
316
- {
317
- :PointShape => "CIRCLE",
318
- :PointRadius => 9,
319
- :FillColor => 30668,
320
- :FillAlpha => 10,
321
- :LineThickness => 4,
322
- :ActiveColor => 30668,
323
- :InactiveColor => 11654895
324
- },
325
- :Label => label,
326
- :Id => "primary",
327
- :YLabels => y_labels,
328
- :ValueCategory => "visits",
329
- :Points => points
330
- }]
348
+ :Series => args.map {|arg|
349
+ ct += 1
350
+ setup_series(arg, ct == 1 ? PRIMARY_STYLE : COMPARE_STYLE)
351
+ }
331
352
  } # end graph
332
353
  } # end options
333
-
334
354
  return URI::encode(options.to_json)
335
355
  end
336
356
  protected :range_to_flashvars
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_otg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - esilverberg
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-01 00:00:00 -07:00
12
+ date: 2009-10-05 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency