rack-google-analytics 0.4.0 → 0.5.0

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 (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/rack-google-analytics.rb +15 -16
  3. metadata +28 -13
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
@@ -1,8 +1,8 @@
1
1
  module Rack
2
-
3
- class GoogleAnalytics
4
-
5
- TRACKER_CODE = <<-EOTC
2
+
3
+ class GoogleTracker
4
+
5
+ TRACKER_CODE = <<-EOTC
6
6
  <script type="text/javascript">
7
7
  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
8
8
  document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
@@ -13,7 +13,7 @@ module Rack
13
13
  pageTracker._trackPageview();
14
14
  } catch(err) {}</script>
15
15
  EOTC
16
-
16
+
17
17
  ASYNC_TRACKER_CODE = <<-EOTC
18
18
  <script type="text/javascript">
19
19
 
@@ -34,18 +34,18 @@ module Rack
34
34
  raise ArgumentError, "Tracker must be set!" unless options[:tracker] and !options[:tracker].empty?
35
35
  @app = app
36
36
  @tracker = options[:tracker]
37
- @async = options[:async] || true
37
+ @async = options[:async]
38
+ @async = true if options[:async].nil?
39
+ @env = options[:env] || "production"
38
40
  end
39
-
41
+
40
42
  def call(env)
41
43
  dup._call(env)
42
44
  end
43
-
45
+
44
46
  def _call(env)
45
-
46
47
  @status, @headers, @response = @app.call(env)
47
- return [@status, @headers, @response] unless @headers['Content-Type'] =~ /html/
48
-
48
+ return [@status, @headers, @response] unless @headers['Content-Type'] =~ /html/ && defined?(Rails) && Rails.env.casecmp(@env) == 0
49
49
  @headers.delete('Content-Length')
50
50
  response = Rack::Response.new([], @status, @headers)
51
51
  @response.each do |fragment|
@@ -53,17 +53,16 @@ module Rack
53
53
  end
54
54
  response.finish
55
55
  end
56
-
56
+
57
57
  def inject_tracker(response)
58
58
  if @async
59
59
  tracker_code = ASYNC_TRACKER_CODE.sub(/UA-xxxxxx-x/, @tracker)
60
- response.sub!(/<body>/, "<body>\n#{tracker_code}\n") rescue response
61
60
  else
62
61
  tracker_code = TRACKER_CODE.sub(/UA-xxxxxx-x/, @tracker)
63
- response.sub!(/<\/body>/, "#{tracker_code}\n</body>") rescue response
64
62
  end
63
+ response.sub!(/<\/body>/, "\n#{tracker_code}\n</body>") rescue response
65
64
  end
66
-
65
+
67
66
  end
68
-
67
+
69
68
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-google-analytics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 5
8
+ - 0
9
+ version: 0.5.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Lee Hambley
@@ -9,29 +14,35 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-01 00:00:00 +01:00
17
+ date: 2010-06-29 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: thoughtbot-shoulda
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
23
30
  version: "0"
24
- version:
31
+ type: :development
32
+ version_requirements: *id001
25
33
  - !ruby/object:Gem::Dependency
26
34
  name: yard
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
33
43
  version: "0"
34
- version:
44
+ type: :development
45
+ version_requirements: *id002
35
46
  description: A simple Rack middleware compatible with Rails, Merb, Sinatra, etc. Easily installed inserts the google tracking code directly before the </body> of your Content-Type="*html" documents
36
47
  email: lee.hambley@gmail.com
37
48
  executables: []
@@ -63,21 +74,25 @@ rdoc_options:
63
74
  require_paths:
64
75
  - lib
65
76
  required_ruby_version: !ruby/object:Gem::Requirement
77
+ none: false
66
78
  requirements:
67
79
  - - ">="
68
80
  - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
69
83
  version: "0"
70
- version:
71
84
  required_rubygems_version: !ruby/object:Gem::Requirement
85
+ none: false
72
86
  requirements:
73
87
  - - ">="
74
88
  - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
75
91
  version: "0"
76
- version:
77
92
  requirements: []
78
93
 
79
94
  rubyforge_project:
80
- rubygems_version: 1.3.5
95
+ rubygems_version: 1.3.7
81
96
  signing_key:
82
97
  specification_version: 3
83
98
  summary: Rack middleware to insert google analytics tracking code into the footer of HTML documents as served