google_otg 1.0.18 → 1.0.19

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 (5) hide show
  1. data/Rakefile +1 -0
  2. data/VERSION +1 -1
  3. data/google_otg.gemspec +5 -2
  4. data/lib/google_otg.rb +28 -0
  5. metadata +12 -2
data/Rakefile CHANGED
@@ -12,6 +12,7 @@ begin
12
12
  gem.authors = ["esilverberg"]
13
13
  gem.add_development_dependency "thoughtbot-shoulda"
14
14
  gem.add_dependency "mattetti-googlecharts"
15
+ gem.add_dependency "fastercsv"
15
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
17
  end
17
18
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.18
1
+ 1.0.19
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.18"
8
+ s.version = "1.0.19"
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-11-02}
12
+ s.date = %q{2009-11-08}
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 = [
@@ -47,12 +47,15 @@ Gem::Specification.new do |s|
47
47
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
48
48
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
49
49
  s.add_runtime_dependency(%q<mattetti-googlecharts>, [">= 0"])
50
+ s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
50
51
  else
51
52
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
52
53
  s.add_dependency(%q<mattetti-googlecharts>, [">= 0"])
54
+ s.add_dependency(%q<fastercsv>, [">= 0"])
53
55
  end
54
56
  else
55
57
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
56
58
  s.add_dependency(%q<mattetti-googlecharts>, [">= 0"])
59
+ s.add_dependency(%q<fastercsv>, [">= 0"])
57
60
  end
58
61
  end
data/lib/google_otg.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $:.unshift(File.dirname(__FILE__))
2
2
  require 'gchart_mod'
3
3
  require 'uri'
4
+ require 'fastercsv'
4
5
 
5
6
  module GoogleOtg
6
7
 
@@ -62,6 +63,33 @@ module GoogleOtg
62
63
 
63
64
  end
64
65
 
66
+ def data_to_csv(hits, args={})
67
+ if hits.is_a?(Array) and hits[0].is_a?(Array)
68
+ range = hits.map{|h| hits_to_otg_range(h, args) }
69
+ else
70
+ range = [hits_to_otg_range(hits, args)]
71
+ end
72
+
73
+ legend = []
74
+ legend.concat(args[:legend])
75
+
76
+ csv_data = FasterCSV.generate do |csv|
77
+ x_labels = range[0][:x_labels].map{|x_label| x_label[1]}
78
+ x_labels.unshift("")
79
+ csv << x_labels
80
+
81
+ raise ArgumentError, "Mismatched array lengths" unless range.length == args[:legend].length
82
+
83
+ for data in range
84
+ points = data[:points].map{|point| point[:Value][0]}
85
+ points.unshift(legend.shift)
86
+ csv << points
87
+ end
88
+ end
89
+
90
+ return csv_data
91
+ end
92
+
65
93
  def over_time_graph(hits, args = {})
66
94
  height = args.has_key?(:height) ? args[:height] : 125
67
95
  src = args.has_key?(:src) ? args[:src] : "http://www.google.com/analytics/static/flash/OverTimeGraph.swf"
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.18
4
+ version: 1.0.19
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-11-02 00:00:00 -08:00
12
+ date: 2009-11-08 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,6 +32,16 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: "0"
34
34
  version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: fastercsv
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
35
45
  description: Include Google's Over Time Graph in your app
36
46
  email: eric@ericsilverberg.com
37
47
  executables: []