analytics_goo 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -1,49 +1,46 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{analytics_goo}
5
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
11
  s.authors = ["Rob Christie"]
9
- s.date = %q{2011-05-31}
12
+ s.date = %q{2011-06-01}
10
13
  s.email = %q{robchristie@gmail.com}
11
14
  s.extra_rdoc_files = [
12
- "README.markdown"
15
+ "README.markdown",
16
+ "TODO"
13
17
  ]
14
18
  s.files = [
15
- ".gitignore",
16
- "CHANGELOG",
17
- "MIT-LICENSE",
18
- "README.markdown",
19
- "Rakefile",
20
- "TODO",
21
- "VERSION",
22
- "analytics_goo.gemspec",
23
- "autotest/CHANGELOG",
24
- "autotest/LICENSE",
25
- "autotest/README.rdoc",
26
- "autotest/discover.rb",
27
- "autotest/railsplugin.rb",
28
- "autotest/railsplugin_rspec.rb",
29
- "init.rb",
30
- "lib/analytics_goo.rb",
31
- "lib/analytics_goo/google_analytics_adapter.rb",
32
- "rails/init.rb",
33
- "rails/init.rb",
34
- "tasks/analytics_goo.rake",
35
- "test/analytics_goo_test.rb",
36
- "test/test_helper.rb"
19
+ "CHANGELOG",
20
+ "MIT-LICENSE",
21
+ "README.markdown",
22
+ "Rakefile",
23
+ "TODO",
24
+ "VERSION",
25
+ "analytics_goo.gemspec",
26
+ "autotest/CHANGELOG",
27
+ "autotest/LICENSE",
28
+ "autotest/README.rdoc",
29
+ "autotest/discover.rb",
30
+ "autotest/railsplugin.rb",
31
+ "autotest/railsplugin_rspec.rb",
32
+ "init.rb",
33
+ "lib/analytics_goo.rb",
34
+ "lib/analytics_goo/google_analytics_adapter.rb",
35
+ "rails/init.rb",
36
+ "tasks/analytics_goo.rake",
37
+ "test/analytics_goo_test.rb",
38
+ "test/test_helper.rb"
37
39
  ]
38
40
  s.homepage = %q{http://github.com/eyestreet/analytics_goo}
39
- s.rdoc_options = ["--charset=UTF-8"]
40
41
  s.require_paths = ["lib"]
41
42
  s.rubygems_version = %q{1.3.6}
42
43
  s.summary = %q{AnalyticsGoo provides server side non-javascript tracking using google analytics.}
43
- s.test_files = [
44
- "test/analytics_goo_test.rb",
45
- "test/test_helper.rb"
46
- ]
47
44
 
48
45
  if s.respond_to? :specification_version then
49
46
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -55,3 +52,4 @@ Gem::Specification.new do |s|
55
52
  else
56
53
  end
57
54
  end
55
+
@@ -40,9 +40,10 @@
40
40
 
41
41
  module AnalyticsGoo
42
42
  class GoogleAnalyticsAdapter
43
- attr_accessor :domain, :analytics_id, :env, :noop, :page_title, :remote_address, :referrer, :user_agent, :http_accept_language
44
- # utmdt
45
- # Page title, which is a URL-encoded string. utmdt=analytics%20page%20test
43
+ attr_accessor :domain, :analytics_id, :env, :noop, :page_title, :remote_address,
44
+ :referrer, :user_agent, :http_accept_language, :campaign, :source,
45
+ :medium, :term, :content
46
+
46
47
 
47
48
  def initialize(ac)
48
49
  # sets the environment that this should be run in
@@ -55,6 +56,11 @@ module AnalyticsGoo
55
56
  @remote_address = ac[:remote_address]
56
57
  @user_agent = ac[:user_agent] || ""
57
58
  @http_accept_language = ac[:http_accept_language] || ""
59
+ @campaign = ac[:campaign] || ""
60
+ @source = ac[:source] || ""
61
+ @medium = ac[:medium] || ""
62
+ @term = ac[:term] || ""
63
+ @content = ac[:content] || ""
58
64
  end
59
65
 
60
66
  GA_DOMAIN = "www.google-analytics.com"
@@ -134,11 +140,7 @@ module AnalyticsGoo
134
140
  # utmip
135
141
  # Remote IP address
136
142
  def utmip
137
- return '' if self.remote_address.blank?
138
- # Capture the first three octects of the IP address and replace the forth
139
- # with 0, e.g. 124.455.3.123 becomes 124.455.3.0
140
- ip = self.remote_address.to_s.gsub!(/([^.]+\.[^.]+\.[^.]+\.)[^.]+/,"\\1") + "0"
141
- ip
143
+ self.remote_address
142
144
  end
143
145
 
144
146
 
@@ -168,6 +170,27 @@ module AnalyticsGoo
168
170
  self.page_title
169
171
  end
170
172
 
173
+ def utm_campaign
174
+ self.campaign
175
+ end
176
+
177
+ def utm_source
178
+ self.source
179
+ end
180
+
181
+
182
+ def utm_medium
183
+ self.medium
184
+ end
185
+
186
+ def utm_term
187
+ self.term
188
+ end
189
+
190
+ def utm_content
191
+ self.content
192
+ end
193
+
171
194
  # send a request to get the image from google
172
195
  def track_page_view(path)
173
196
  res = ""
@@ -179,7 +202,7 @@ module AnalyticsGoo
179
202
 
180
203
  protected
181
204
  def track_it(path)
182
- # puts "/__utm.gif?utmwv=#{self.utmwv}&utmn=#{self.utmn}&utmhn=#{self.utmhn}&utmcs=#{self.utmcs}&utmsr=#{self.utmsr}&utmsc=#{self.utmsc}&utmul=#{self.utmul}&utmje=#{self.utmje}&utmfl=#{URI::escape(self.utmfl)}&utmdt=#{URI::escape(self.utmdt)}&utmhid=#{utmhid}&utmr=#{self.utmr}&utmp=#{path}&utmac=#{self.utmac}&utmcc=#{self.utmcc} \n"
205
+ #TODO - cleanup
183
206
  utm_uri = "/__utm.gif?" +
184
207
  "utmwv=" + self.utmwv +
185
208
  "&utmn=" + self.utmn +
@@ -189,8 +212,12 @@ module AnalyticsGoo
189
212
  "&utmac=" + self.utmac +
190
213
  "&utmcc=" + self.utmcc +
191
214
  "&utmvid="+ self.utmvid +
192
- "&utmip=" + self.utmip +
193
- "&utmdt=" + CGI.escape(self.utmdt)
215
+ "&utmip=" + self.utmip
216
+ utm_uri << "&utmdt=#{CGI.escape(self.utmdt)}" unless self.utmdt.blank?
217
+ utm_uri << "&utm_campaign=#{CGI.escape(self.utm_campaign)}" unless self.utm_campaign.blank?
218
+ utm_uri << "&utm_source=#{CGI.escape(self.utm_source)}" unless self.utm_source.blank?
219
+ utm_uri << "&utm_medium=#{CGI.escape(self.utm_medium)}" unless self.utm_medium.blank?
220
+ utm_uri << "&utm_term=#{CGI.escape(self.utm_term)}" unless self.utm_term.blank?
194
221
  Net::HTTP.start(GA_DOMAIN) {|http|
195
222
  http.request_get(utm_uri, {"User-Agent" => self.user_agent, "Accept-Language" => self.http_accept_language})
196
223
  }
@@ -34,7 +34,7 @@ class AnalyticsGooTest < ActiveSupport::TestCase
34
34
 
35
35
  context "AnalyticsGoo " do
36
36
  setup do
37
- @analytics_config = { :analytics_id => "MO-11685745-3",:domain => "test.local", :page_title => "This is the page title"}
37
+ @analytics_config = { :analytics_id => "MO-11685745-3",:domain => "test.local", :page_title => "This is the page title", :remote_address => "127.0.0.1"}
38
38
  @ga = AnalyticsGoo::GoogleAnalyticsAdapter.new(@analytics_config)
39
39
  end
40
40
  context "when initialized with an analytics id" do
@@ -47,6 +47,12 @@ class AnalyticsGooTest < ActiveSupport::TestCase
47
47
  assert_equal "test.local", @ga.domain
48
48
  end
49
49
  end
50
+ context "when initialized with a remote ip address" do
51
+ should "return that IP" do
52
+ assert_equal "127.0.0.1", @ga.utmip
53
+ end
54
+ end
55
+
50
56
  context "that has been initialized" do
51
57
  should "have an urchin url" do
52
58
  assert_equal "http://www.google-analytics.com/__utm.gif", @ga.urchin_url
@@ -137,7 +143,7 @@ class AnalyticsGooTest < ActiveSupport::TestCase
137
143
  end
138
144
  context "makes a request for an image on the google analytics server" do
139
145
  setup do
140
- path = "/__utm.gif?utmwv=4.4sj&utmn=1277734430&utmhn=shor.tswit.ch&utmr=-&utmp=%2Fadmin%2F1&utmac=MO-11685745-3&utmcc=__utma%3D999.999.999.999.999.1%3B&utmvid=0x5719fb3b1e05e909&utmip=127.0.0.0"
146
+ path = "/__utm.gif?utmwv=4.4sj&utmn=1277734430&utmhn=shor.tswit.ch&utmr=-&utmp=%2Fadmin%2F1&utmac=MO-11685745-3&utmcc=__utma%3D999.999.999.999.999.1%3B&utmvid=0x5719fb3b1e05e909&utmip=127.0.0.1"
141
147
  header_hash = {'User-Agent' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6', 'Accept-Language' => 'en-us,en;q=0.5'}
142
148
  @test_ad.expects(:utmn).returns("1277734430")
143
149
  @test_ad.expects(:utmvid).returns("0x5719fb3b1e05e909")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: analytics_goo
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rob Christie
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-31 00:00:00 -04:00
18
+ date: 2011-06-01 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -27,8 +27,8 @@ extensions: []
27
27
 
28
28
  extra_rdoc_files:
29
29
  - README.markdown
30
+ - TODO
30
31
  files:
31
- - .gitignore
32
32
  - CHANGELOG
33
33
  - MIT-LICENSE
34
34
  - README.markdown
@@ -54,8 +54,8 @@ homepage: http://github.com/eyestreet/analytics_goo
54
54
  licenses: []
55
55
 
56
56
  post_install_message:
57
- rdoc_options:
58
- - --charset=UTF-8
57
+ rdoc_options: []
58
+
59
59
  require_paths:
60
60
  - lib
61
61
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -83,6 +83,5 @@ rubygems_version: 1.3.6
83
83
  signing_key:
84
84
  specification_version: 3
85
85
  summary: AnalyticsGoo provides server side non-javascript tracking using google analytics.
86
- test_files:
87
- - test/analytics_goo_test.rb
88
- - test/test_helper.rb
86
+ test_files: []
87
+
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- coverage
2
- pkg
3
- rdoc
4
- tags
5
- test/tmp
6
- test/version_tmp
7
- tmp