google_otg 1.0.18 → 1.0.19

Sign up to get free protection for your applications and to get access to all the features.
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: []