rugalytics 0.1.2 → 0.1.3

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/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v0.1.3. fixed bug due to change in google's graph csv date labels
2
+
1
3
  v0.1.2. added profile.report_names method; handle '.' or '/' in graph column names without failing
2
4
 
3
5
  v0.1.1. fixed bug due to change in google's graph csv
data/Manifest CHANGED
@@ -5,11 +5,13 @@ lib/rugalytics/graph.rb
5
5
  lib/rugalytics/item.rb
6
6
  lib/rugalytics/profile.rb
7
7
  lib/rugalytics/report.rb
8
+ lib/rugalytics/server.rb
8
9
  lib/rugalytics.rb
9
10
  LICENSE
10
11
  Manifest
11
12
  README
12
13
  README.rdoc
14
+ bin/rugalytics
13
15
  rugalytics.yml.example
14
16
  spec/fixtures/analytics_account_find_all.html
15
17
  spec/fixtures/analytics_profile_find_all.html
data/Rakefile CHANGED
@@ -11,6 +11,7 @@ begin
11
11
  m.rdoc_options << '--inline-source'
12
12
  m.rdoc_pattern = ["README", "CHANGELOG", "LICENSE"]
13
13
  m.dependencies = ["hpricot >=0.6", "activesupport >=2.0.2", "googlebase >=0.2.0", "morph >=0.2.0"]
14
+ m.executable_pattern = 'bin/rugalytics'
14
15
  end
15
16
 
16
17
  rescue LoadError
data/bin/rugalytics ADDED
@@ -0,0 +1,5 @@
1
+ require 'rugalytics'
2
+
3
+ puts 'rugalytics ' + Rugalytics::VERSION
4
+
5
+ Rugalytics::Server.new
@@ -44,10 +44,15 @@ module Rugalytics
44
44
  @base_url = "#{@base_url}#{names[1].chomp('/')}" if names.size > 1 && names[1][/^\/.+$/]
45
45
  @name = lines[2].chomp(',')
46
46
  dates = lines[3].include?('","') ? lines[3].split('","') : lines[3].split(',')
47
+
47
48
  @start_date = Rugalytics.i18n_date_parse(dates[0])
48
49
  @end_date = Rugalytics.i18n_date_parse(dates[1])
49
50
  end
50
51
 
52
+ def date_from_point date_point
53
+ date_point[/^\d\d\d\d\d\d\d\d,/] || date_point[/^".+",/] || date_point[/^[^,]+,/]
54
+ end
55
+
51
56
  def handle_graphs lines
52
57
  index = 5
53
58
  while index < lines.size
@@ -61,7 +66,7 @@ module Rugalytics
61
66
  index = index.next
62
67
 
63
68
  points = []
64
- while (date_point = lines[index]) && (date = date_point[/^\d\d\d\d\d\d\d\d,/])
69
+ while (date_point = lines[index]) && (date = date_from_point(date_point))
65
70
  point = date_point.sub(date,'')
66
71
  points << point.tr('",','').to_i
67
72
  index = index.next
@@ -0,0 +1,33 @@
1
+ require 'yaml'
2
+ require 'webrick'
3
+ include WEBrick
4
+
5
+ module Rugalytics
6
+
7
+ class Servlet < HTTPServlet::AbstractServlet
8
+ def do_GET(req, res)
9
+ res.body = "<HTML>hello, world.</HTML>"
10
+ res['Content-Type'] = "text/html"
11
+ end
12
+ end
13
+
14
+ class Server
15
+ def initialize
16
+ @profile = Rugalytics.default_profile
17
+
18
+ server = HTTPServer.new :Port => 8888
19
+
20
+ server.mount("/", Rugalytics::Servlet)
21
+
22
+ server.mount_proc("/top_content_detail_keywords") {|request, response|
23
+ url = request.query['url']
24
+ report = @profile.top_content_detail_keywords_report(:url => url)
25
+ response.body = [url, report.name, report.items.to_yaml].join("\n")
26
+ response['Content-Type'] = "text/plain"
27
+ }
28
+
29
+ trap("INT"){ server.shutdown }
30
+ server.start
31
+ end
32
+ end
33
+ end
data/lib/rugalytics.rb CHANGED
@@ -11,7 +11,7 @@ require 'yaml'
11
11
 
12
12
  # See README for usage documentation.
13
13
  module Rugalytics
14
- VERSION = "0.1.2"
14
+ VERSION = "0.1.3"
15
15
 
16
16
  FORMAT_PDF = '0' unless defined? FORMAT_PDF
17
17
  FORMAT_XML = '1' unless defined? FORMAT_XML
@@ -100,5 +100,6 @@ require File.dirname(__FILE__) + '/rugalytics/profile'
100
100
  require File.dirname(__FILE__) + '/rugalytics/report'
101
101
  require File.dirname(__FILE__) + '/rugalytics/item'
102
102
  require File.dirname(__FILE__) + '/rugalytics/graph'
103
+ require File.dirname(__FILE__) + '/rugalytics/server'
103
104
 
104
105
  # Rugalytics.config_setup(RAILS_ROOT) if defined?(RAILS_ROOT) && RAILS_ROOT
data/rugalytics.gemspec CHANGED
@@ -2,15 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{rugalytics}
5
- s.version = "0.1.2"
5
+ s.version = "0.1.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Rob McKinnon"]
9
9
  s.date = %q{2008-11-21}
10
+ s.default_executable = %q{rugalytics}
10
11
  s.description = %q{Rugalytics is a Ruby API for Google Analytics.}
11
12
  s.email = ["rob ~@nospam@~ rubyforge.org"]
13
+ s.executables = ["rugalytics"]
12
14
  s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README"]
13
- s.files = ["CHANGELOG", "lib/rugalytics/account.rb", "lib/rugalytics/connection.rb", "lib/rugalytics/graph.rb", "lib/rugalytics/item.rb", "lib/rugalytics/profile.rb", "lib/rugalytics/report.rb", "lib/rugalytics.rb", "LICENSE", "Manifest", "README", "README.rdoc", "rugalytics.yml.example", "spec/fixtures/analytics_account_find_all.html", "spec/fixtures/analytics_profile_find_all.html", "spec/fixtures/dashboard_report_webgroup.xml", "spec/lib/rugalytics/account_spec.rb", "spec/lib/rugalytics/graph_spec.rb", "spec/lib/rugalytics/item_spec.rb", "spec/lib/rugalytics/profile_spec.rb", "spec/lib/rugalytics/report_spec.rb", "spec/lib/rugalytics_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "rugalytics.gemspec", "Rakefile"]
15
+ s.files = ["CHANGELOG", "lib/rugalytics/account.rb", "lib/rugalytics/connection.rb", "lib/rugalytics/graph.rb", "lib/rugalytics/item.rb", "lib/rugalytics/profile.rb", "lib/rugalytics/report.rb", "lib/rugalytics/server.rb", "lib/rugalytics.rb", "LICENSE", "Manifest", "README", "README.rdoc", "bin/rugalytics", "rugalytics.yml.example", "spec/fixtures/analytics_account_find_all.html", "spec/fixtures/analytics_profile_find_all.html", "spec/fixtures/dashboard_report_webgroup.xml", "spec/lib/rugalytics/account_spec.rb", "spec/lib/rugalytics/graph_spec.rb", "spec/lib/rugalytics/item_spec.rb", "spec/lib/rugalytics/profile_spec.rb", "spec/lib/rugalytics/report_spec.rb", "spec/lib/rugalytics_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "rugalytics.gemspec", "Rakefile"]
14
16
  s.has_rdoc = true
15
17
  s.homepage = %q{}
16
18
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rugalytics", "--main", "README", "--inline-source"]
@@ -167,6 +167,9 @@ describe Report do
167
167
  describe "when creating graph points from 'Graph'" do
168
168
  def graph_correct expected_start, expected_end, column_name='Page Views', graph_name=:pageviews_graph
169
169
  @start_end_dates = "#{@start},#{@end}"
170
+ @point_labels=['20080828', '20080829'] unless @point_labels
171
+ @label1 = @point_labels[0]
172
+ @label2 = @point_labels[1]
170
173
  @name = column_name
171
174
  @column_names = "Day,#{@name}"
172
175
  @csv = ['# ----------------------------------------',
@@ -179,8 +182,8 @@ describe Report do
179
182
  '# Graph',
180
183
  '# ----------------------------------------',
181
184
  @column_names,
182
- '20080828,"5,360"',
183
- '20080829,575',
185
+ %Q|#{@label1},"5,360"|,
186
+ %Q|#{@label2},575|,
184
187
  '# ----------------------------------------']
185
188
  graph = mock('graph')
186
189
 
@@ -192,34 +195,44 @@ describe Report do
192
195
  end
193
196
 
194
197
  describe 'with source date format "Month Day, Year"' do
195
- it 'should create graph with data under "Graph"' do
198
+ before do
196
199
  @start = %Q|"August 28, 2008"|
197
200
  @end = %Q|"August 29, 2008"|
201
+ end
202
+ it 'should create graph with data under "Graph"' do
198
203
  graph_correct Date.new(2008,8,28), Date.new(2008,8,29)
199
204
  end
205
+ describe 'with graph point date format "Month Day, Year"' do
206
+ it 'should create graph with data under "Graph"' do
207
+ @point_labels = [@start,@end]
208
+ graph_correct Date.new(2008,8,28), Date.new(2008,8,29)
209
+ end
210
+ end
200
211
  end
201
212
 
202
213
  describe "with source date format 'Day Month Year'" do
203
- it 'should create graph with data under "Graph"' do
214
+ before do
204
215
  @start = %Q|28 August 2008|
205
216
  @end = %Q|29 August 2008|
217
+ end
218
+ it 'should create graph with data under "Graph"' do
206
219
  graph_correct Date.parse(@start), Date.parse(@end)
207
220
  end
208
- end
209
-
210
- describe "with forward slash in column name" do
211
- it 'should create graph with forward slash replaced by _per_ in column name' do
212
- @start = %Q|28 August 2008|
213
- @end = %Q|29 August 2008|
214
- graph_correct Date.parse(@start), Date.parse(@end), 'Pages/Visit', :pages_per_visit_graph
221
+ describe 'with graph point date format "Day Month Year"' do
222
+ it 'should create graph with data under "Graph"' do
223
+ @point_labels = [@start, @end]
224
+ graph_correct Date.parse(@start), Date.parse(@end)
225
+ end
215
226
  end
216
- end
217
-
218
- describe "with dot in column name" do
219
- it 'should create graph with dot removed in column name' do
220
- @start = %Q|28 August 2008|
221
- @end = %Q|29 August 2008|
222
- graph_correct Date.parse(@start), Date.parse(@end), 'Avg. Time on Site', :avg_time_on_site_graph
227
+ describe "with forward slash in column name" do
228
+ it 'should create graph with forward slash replaced by _per_ in column name' do
229
+ graph_correct Date.parse(@start), Date.parse(@end), 'Pages/Visit', :pages_per_visit_graph
230
+ end
231
+ end
232
+ describe "with dot in column name" do
233
+ it 'should create graph with dot removed in column name' do
234
+ graph_correct Date.parse(@start), Date.parse(@end), 'Avg. Time on Site', :avg_time_on_site_graph
235
+ end
223
236
  end
224
237
  end
225
238
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rugalytics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob McKinnon
@@ -65,8 +65,8 @@ dependencies:
65
65
  description: Rugalytics is a Ruby API for Google Analytics.
66
66
  email:
67
67
  - rob ~@nospam@~ rubyforge.org
68
- executables: []
69
-
68
+ executables:
69
+ - rugalytics
70
70
  extensions: []
71
71
 
72
72
  extra_rdoc_files:
@@ -81,11 +81,13 @@ files:
81
81
  - lib/rugalytics/item.rb
82
82
  - lib/rugalytics/profile.rb
83
83
  - lib/rugalytics/report.rb
84
+ - lib/rugalytics/server.rb
84
85
  - lib/rugalytics.rb
85
86
  - LICENSE
86
87
  - Manifest
87
88
  - README
88
89
  - README.rdoc
90
+ - bin/rugalytics
89
91
  - rugalytics.yml.example
90
92
  - spec/fixtures/analytics_account_find_all.html
91
93
  - spec/fixtures/analytics_profile_find_all.html