middleman-google-analytics 0.0.3 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd97bf6b048263255054615a319be4a68bd71fa7
4
- data.tar.gz: 5f9d5a18b726cbe60c77f4536ab07dde405e8a21
3
+ metadata.gz: 12d3bde3081dcdfcc610d145db3e1caf85f33f28
4
+ data.tar.gz: bfeb5cd960ddf072e30634b89ca1a82aaf29c75a
5
5
  SHA512:
6
- metadata.gz: 6df5bd07836d501e4f6c07766140a8493e3ac5cc7b665f99108c7ffff1ae1d0676069ac78b46dc239c3cd91f3a5d976a83e2ca4893fd7113e034df6470ad6f1f
7
- data.tar.gz: 11d3e72616bb7be1d3857032010811146a67a11b5890ce52af825957e15982d24b85a325581f70504fa1c9feda371cdbad9a0f10d69ea075448ce9935ded0d19
6
+ metadata.gz: 537f59a5868a5d9c1f05f4617605c163d1096a5fb1b2ab920f821cb44bee5d11032a4e667bc8756c8e5a11f21d4da8c4eb873c21c623fe0851d0cabc74244c4f
7
+ data.tar.gz: e3ff1c37d28ddd8e8c3213de014d5c23f331c7fc2bb9165dca240b2fe19b3718e4ec7379b6287e3e6740c0d617a62e32da78a51293f1bc51f3ec7b376a88b632
data/.gitignore CHANGED
@@ -1,3 +1,29 @@
1
- # Ignore bundler lock file
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Documentation cache and generated files:
13
+ /.yardoc/
14
+ /_yardoc/
15
+ /doc/
16
+ /rdoc/
17
+
18
+ ## Environment normalisation:
19
+ /.bundle/
20
+ /lib/bundler/man/
21
+
22
+ # for a library or gem, you might want to ignore these files since the code is
23
+ # intended to run in multiple environments; otherwise, check them in:
2
24
  Gemfile.lock
3
- pkg
25
+ .ruby-version
26
+ .ruby-gemset
27
+
28
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
29
+ .rvmrc
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
7
+ - jruby-19mode
8
+
9
+ # Bug in jRuby w/ Rouge: https://github.com/jruby/jruby/issues/1392
10
+ matrix:
11
+ allow_failures:
12
+ - rvm: jruby-19mode
13
+
14
+ script: "bundle exec rake test"
15
+
16
+ env: TEST=true
data/CHANGELOG.md CHANGED
@@ -1,11 +1,23 @@
1
- # Changes
1
+ # Changelog
2
2
 
3
- ## 0.0.3, 2014-01-07
3
+ ## HEAD (???)
4
+
5
+ ## 0.1.1 (2014-04-20)
6
+
7
+ * Fix Universal Analytics code.
8
+
9
+ ## 0.1.0 (2014-04-16)
10
+
11
+ * Add Cucumber tests.
12
+ * Add Universal Analytics support.
13
+ * Cleanup README.
14
+
15
+ ## 0.0.3 (2014-01-07)
4
16
 
5
17
  * Add license info to gemspec.
6
18
  * Add project status info to README.
7
19
 
8
- ## 0.0.2, 2013-10-16
20
+ ## 0.0.2 (2013-10-16)
9
21
 
10
22
  * Remove CDATA markerts that were choking some minifiers.
11
23
  * Allow linking of sub-domains to their parent domain.
@@ -14,6 +26,6 @@
14
26
  * Implement ability to anonymize IPs.
15
27
  * Use asynchronous loading for GA JS.
16
28
 
17
- ## 0.0.1, 2013-03-10
29
+ ## 0.0.1 (2013-03-10)
18
30
 
19
31
  * Initial version
data/Gemfile CHANGED
@@ -10,8 +10,8 @@ group :development do
10
10
  end
11
11
 
12
12
  group :test do
13
- gem "cucumber", "~> 1.2.0"
14
- gem "fivemat"
15
- gem "aruba", "~> 0.4.11"
13
+ gem "cucumber", "~> 1.3.1"
14
+ gem "fivemat", :github => "tpope/fivemat"
15
+ gem "aruba", "~> 0.5.1"
16
16
  gem "rspec", "~> 2.7"
17
17
  end
data/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- (The MIT License)
1
+ The MIT License (MIT)
2
2
 
3
+ Copyright (c) 2014 Daniel Bayerlein
3
4
  Copyright (c) 2013 Jon Frisby
4
5
 
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- 'Software'), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
12
 
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
15
 
16
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,44 +1,60 @@
1
- # Middleman Google Analytics
1
+ # middleman-google-analytics
2
2
 
3
- Middleman-Google-Analytics is a [Middleman](https://github.com/middleman/middleman)
4
- extension that generates Google Analytics tracking code, and keeps your config
5
- in `config.rb`, where it belongs.
3
+ [![Gem Version](https://badge.fury.io/rb/middleman-google-analytics.svg)](http://badge.fury.io/rb/middleman-google-analytics)
4
+ [![Build Status](https://travis-ci.org/danielbayerlein/middleman-google-analytics.svg?branch=master)](https://travis-ci.org/danielbayerlein/middleman-google-analytics)
5
+ [![Dependency Status](https://gemnasium.com/danielbayerlein/middleman-google-analytics.svg)](https://gemnasium.com/danielbayerlein/middleman-google-analytics)
6
6
 
7
+ **middleman-google-analytics** is a [Middleman](http://middlemanapp.com)
8
+ extension that generates
9
+ [Google Analytics](https://www.google.de/intl/en/analytics/) tracking code, and
10
+ keeps your config in `config.rb`, where it belongs.
7
11
 
8
- ## Status
12
+ ## Installation
9
13
 
10
- I'm not actively maintaining this project anymore. Straightforward patches will be merged, and
11
- simple issues will be addressed but I am interested in having a new maintainer take over the
12
- project for less trivial changes such as adding `analytics.js` support.
14
+ 1. Specify the dependency in your project's `Gemfile`:
13
15
 
16
+ ```ruby
17
+ # Gemfile
18
+ gem "middleman-google-analytics"
19
+ ```
14
20
 
15
- ## Installation
21
+ 2. Activate the Google Analytics extension in your project's `config.rb`:
16
22
 
17
- If you already have a Middleman project:
23
+ ```ruby
24
+ # config.rb
25
+ activate :google_analytics do |ga|
26
+ ga.tracking_id = 'UA-XXXXXXX-X'
27
+ end
28
+ ```
18
29
 
19
- Add `gem "middleman-google-analytics"` to your `Gemfile` then open up your `config.rb` and add:
30
+ 3. In your layout, after your footer, call `google_analytics_tag` or
31
+ `google_analytics_universal_tag` and include the results in the page:
20
32
 
21
- ```ruby
22
- # Activate google-analytics extension
23
- activate :google_analytics do |ga|
24
- ga.tracking_id = 'UA-XXXXXXX-X'
25
- end
26
- ```
33
+ **Haml:**
27
34
 
28
- Then, in your layout, after your footer, call `google_analytics_tag` and
29
- include the results in the page. For example, in HAML:
35
+ ```haml
36
+ # Google Analytics
37
+ = google_analytics_tag
38
+ ```
30
39
 
31
- ```haml
32
- = google_analytics_tag
33
- ```
40
+ ```haml
41
+ # Universal Analytics
42
+ = google_analytics_universal_tag
43
+ ```
34
44
 
35
- Or ERB:
45
+ **ERB:**
36
46
 
37
- ```erb
38
- <%= google_analytics_tag %>
39
- ```
47
+ ```erb
48
+ <% # Google Analytics %>
49
+ <%= google_analytics_tag %>
50
+ ```
51
+
52
+ ```erb
53
+ <% # Universal Analytics %>
54
+ <%= google_analytics_universal_tag %>
55
+ ```
40
56
 
41
- ### Configuration
57
+ ## Configuration
42
58
 
43
59
  ```ruby
44
60
  activate :google_analytics do |ga|
@@ -75,8 +91,23 @@ end
75
91
  Once you've bundled you should be able to run middleman as normal, and have it
76
92
  display the GA tracking code.
77
93
 
94
+ ## Special Thanks
95
+
96
+ * [Jon Frisby (@MrJoy)](https://github.com/MrJoy)
97
+ * For the initial code.
98
+ * [Atsushi Nagase (@ngs)](https://github.com/ngs)
99
+ * Cucumber tests and "Universal Analytics" support.
100
+
101
+ ## Contributing
102
+
103
+ 1. Fork it
104
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
105
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
106
+ 4. Push to the branch (`git push origin my-new-feature`)
107
+ 5. Create new [Pull Request](../../pull/new/master)
108
+
78
109
  ## License
79
110
 
80
- Copyright (c) 2013 Jon Frisby
111
+ Copyright (c) 2014 Daniel Bayerlein. See [LICENSE](./LICENSE) for details.
81
112
 
82
- Licensed under the terms of the MIT X11 license. See LICENSE.
113
+ Copyright (c) 2013 Jon Frisby.
@@ -0,0 +1,170 @@
1
+ Feature: Google Analytics tag helper
2
+
3
+ Scenario: Basic tracking code
4
+ Given a fixture app "test-app"
5
+ And a file named "config.rb" with:
6
+ """
7
+ activate :google_analytics do |ga|
8
+ ga.tracking_id = 'UA-123456-78'
9
+ ga.debug = false
10
+ end
11
+ """
12
+ Given the Server is running at "test-app"
13
+ When I go to "/"
14
+ Then I should see:
15
+ """
16
+ <script type="text/javascript">
17
+ var _gaq = _gaq || [];
18
+ _gaq.push(["_setAccount", "UA-123456-78"]);
19
+ _gaq.push(["_trackPageview"]);
20
+ (function() {
21
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
22
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js';
23
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
24
+ })();
25
+ </script>
26
+ """
27
+
28
+ Scenario: On debug mode
29
+ Given a fixture app "test-app"
30
+ And a file named "config.rb" with:
31
+ """
32
+ activate :google_analytics do |ga|
33
+ ga.tracking_id = 'UA-123456-78'
34
+ ga.debug = true
35
+ end
36
+ """
37
+ Given the Server is running at "test-app"
38
+ When I go to "/"
39
+ Then I should see:
40
+ """
41
+ <script type="text/javascript">
42
+ var _gaq = _gaq || [];
43
+ _gaq.push(["_setAccount", "UA-123456-78"]);
44
+ _gaq.push(["_trackPageview"]);
45
+ (function() {
46
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
47
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/u/ga_debug.js';
48
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
49
+ })();
50
+ </script>
51
+ """
52
+
53
+ Scenario: Set domain name
54
+ Given a fixture app "test-app"
55
+ And a file named "config.rb" with:
56
+ """
57
+ activate :google_analytics do |ga|
58
+ ga.tracking_id = 'UA-123456-78'
59
+ ga.domain_name = 'example.com'
60
+ ga.debug = false
61
+ ga.allow_linker = false
62
+ ga.anonymize_ip = false
63
+ end
64
+ """
65
+ Given the Server is running at "test-app"
66
+ When I go to "/"
67
+ Then I should see:
68
+ """
69
+ <script type="text/javascript">
70
+ var _gaq = _gaq || [];
71
+ _gaq.push(["_setAccount", "UA-123456-78"]);
72
+ _gaq.push(["_setDomainName", "example.com"]);
73
+ _gaq.push(["_trackPageview"]);
74
+ (function() {
75
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
76
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js';
77
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
78
+ })();
79
+ </script>
80
+ """
81
+
82
+ Scenario: Multiple top-level domains
83
+ Given a fixture app "test-app"
84
+ And a file named "config.rb" with:
85
+ """
86
+ activate :google_analytics do |ga|
87
+ ga.tracking_id = 'UA-123456-78'
88
+ ga.domain_name = 'example.com'
89
+ ga.debug = false
90
+ ga.allow_linker = true
91
+ ga.anonymize_ip = false
92
+ end
93
+ """
94
+ Given the Server is running at "test-app"
95
+ When I go to "/"
96
+ Then I should see:
97
+ """
98
+ <script type="text/javascript">
99
+ var _gaq = _gaq || [];
100
+ _gaq.push(["_setAccount", "UA-123456-78"]);
101
+ _gaq.push(["_setDomainName", "example.com"]);
102
+ _gaq.push(["_setAllowLinker", true]);
103
+ _gaq.push(["_trackPageview"]);
104
+ (function() {
105
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
106
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js';
107
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
108
+ })();
109
+ </script>
110
+ """
111
+
112
+ Scenario: Removing the last octet of the IP address
113
+ Given a fixture app "test-app"
114
+ And a file named "config.rb" with:
115
+ """
116
+ activate :google_analytics do |ga|
117
+ ga.tracking_id = 'UA-123456-78'
118
+ ga.domain_name = nil
119
+ ga.debug = false
120
+ ga.allow_linker = false
121
+ ga.anonymize_ip = true
122
+ end
123
+ """
124
+ Given the Server is running at "test-app"
125
+ When I go to "/"
126
+ Then I should see:
127
+ """
128
+ <script type="text/javascript">
129
+ var _gaq = _gaq || [];
130
+ _gaq.push(["_setAccount", "UA-123456-78"]);
131
+ _gaq.push(["_gat._anonymizeIp"]);
132
+ _gaq.push(["_trackPageview"]);
133
+ (function() {
134
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
135
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js';
136
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
137
+ })();
138
+ </script>
139
+ """
140
+ Scenario: Full options
141
+ Given a fixture app "test-app"
142
+ And a file named "config.rb" with:
143
+ """
144
+ activate :google_analytics do |ga|
145
+ ga.tracking_id = 'UA-123456-78'
146
+ ga.domain_name = 'example.com'
147
+ ga.debug = true
148
+ ga.allow_linker = true
149
+ ga.anonymize_ip = true
150
+ end
151
+ """
152
+ Given the Server is running at "test-app"
153
+ When I go to "/"
154
+ Then I should see:
155
+ """
156
+ <script type="text/javascript">
157
+ var _gaq = _gaq || [];
158
+ _gaq.push(["_setAccount", "UA-123456-78"]);
159
+ _gaq.push(["_setDomainName", "example.com"]);
160
+ _gaq.push(["_setAllowLinker", true]);
161
+ _gaq.push(["_gat._anonymizeIp"]);
162
+ _gaq.push(["_trackPageview"]);
163
+ (function() {
164
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
165
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/u/ga_debug.js';
166
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
167
+ })();
168
+ </script>
169
+ """
170
+
@@ -0,0 +1,132 @@
1
+ Feature: Google Analytics universal tag helper
2
+
3
+ Scenario: Basic tracking code
4
+ Given a fixture app "test-app-universal"
5
+ And a file named "config.rb" with:
6
+ """
7
+ activate :google_analytics do |ga|
8
+ ga.tracking_id = 'UA-123456-78'
9
+ ga.domain_name = nil
10
+ ga.debug = false
11
+ ga.allow_linker = false
12
+ ga.anonymize_ip = false
13
+ end
14
+ """
15
+ Given the Server is running at "test-app-universal"
16
+ When I go to "/"
17
+ Then I should see:
18
+ """
19
+ <script type="text/javascript">
20
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
21
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
22
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
23
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
24
+ ga('create', 'UA-123456-78', 'auto');
25
+ ga('send', 'pageview');
26
+ </script>
27
+ """
28
+
29
+ Scenario: Set domain name
30
+ Given a fixture app "test-app-universal"
31
+ And a file named "config.rb" with:
32
+ """
33
+ activate :google_analytics do |ga|
34
+ ga.tracking_id = 'UA-123456-78'
35
+ ga.domain_name = 'example.com'
36
+ ga.debug = false
37
+ ga.allow_linker = false
38
+ ga.anonymize_ip = false
39
+ end
40
+ """
41
+ Given the Server is running at "test-app-universal"
42
+ When I go to "/"
43
+ Then I should see:
44
+ """
45
+ <script type="text/javascript">
46
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
47
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
48
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
49
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
50
+ ga('create', 'UA-123456-78', 'example.com');
51
+ ga('send', 'pageview');
52
+ </script>
53
+ """
54
+
55
+ Scenario: Multiple top-level domains
56
+ Given a fixture app "test-app-universal"
57
+ And a file named "config.rb" with:
58
+ """
59
+ activate :google_analytics do |ga|
60
+ ga.tracking_id = 'UA-123456-78'
61
+ ga.domain_name = 'example.com'
62
+ ga.debug = false
63
+ ga.allow_linker = true
64
+ ga.anonymize_ip = false
65
+ end
66
+ """
67
+ Given the Server is running at "test-app-universal"
68
+ When I go to "/"
69
+ Then I should see:
70
+ """
71
+ <script type="text/javascript">
72
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
73
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
74
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
75
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
76
+ ga('create', 'UA-123456-78', 'example.com', {'allowLinker': true});
77
+ ga('send', 'pageview');
78
+ </script>
79
+ """
80
+
81
+ Scenario: Removing the last octet of the IP address
82
+ Given a fixture app "test-app-universal"
83
+ And a file named "config.rb" with:
84
+ """
85
+ activate :google_analytics do |ga|
86
+ ga.tracking_id = 'UA-123456-78'
87
+ ga.domain_name = nil
88
+ ga.debug = false
89
+ ga.allow_linker = false
90
+ ga.anonymize_ip = true
91
+ end
92
+ """
93
+ Given the Server is running at "test-app-universal"
94
+ When I go to "/"
95
+ Then I should see:
96
+ """
97
+ <script type="text/javascript">
98
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
99
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
100
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
101
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
102
+ ga('create', 'UA-123456-78', 'auto');
103
+ ga('set', 'anonymizeIp', true);
104
+ ga('send', 'pageview');
105
+ </script>
106
+ """
107
+ Scenario: Full options
108
+ Given a fixture app "test-app-universal"
109
+ And a file named "config.rb" with:
110
+ """
111
+ activate :google_analytics do |ga|
112
+ ga.tracking_id = 'UA-123456-78'
113
+ ga.domain_name = 'example.com'
114
+ ga.debug = true
115
+ ga.allow_linker = true
116
+ ga.anonymize_ip = true
117
+ end
118
+ """
119
+ Given the Server is running at "test-app-universal"
120
+ When I go to "/"
121
+ Then I should see:
122
+ """
123
+ <script type="text/javascript">
124
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
125
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
126
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
127
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
128
+ ga('create', 'UA-123456-78', 'example.com', {'allowLinker': true});
129
+ ga('set', 'anonymizeIp', true);
130
+ ga('send', 'pageview');
131
+ </script>
132
+ """
@@ -0,0 +1 @@
1
+ <%= google_analytics_universal_tag %>
@@ -0,0 +1 @@
1
+ <%= google_analytics_tag %>
@@ -24,11 +24,9 @@ module Middleman
24
24
  module InstanceMethods
25
25
  def google_analytics_tag
26
26
  options = ::Middleman::GoogleAnalytics.options
27
-
28
27
  options.debug = development? if options.debug.nil?
29
28
  ga = options.debug ? 'u/ga_debug' : 'ga'
30
29
  domain_name = options.domain_name
31
-
32
30
  if tracking_id = options.tracking_id
33
31
  gaq = []
34
32
  gaq << ['_setAccount', "#{tracking_id}"]
@@ -44,6 +42,24 @@ module Middleman
44
42
  ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/#{ga}.js';
45
43
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
46
44
  })();
45
+ </script>}
46
+ end
47
+ end
48
+
49
+ def google_analytics_universal_tag
50
+ options = ::Middleman::GoogleAnalytics.options
51
+ options.debug = development? if options.debug.nil?
52
+ ga = options.debug ? 'u/ga_debug' : 'ga'
53
+ domain_name = options.domain_name
54
+ if tracking_id = options.tracking_id
55
+ %Q{<script type="text/javascript">
56
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
57
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
58
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
59
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
60
+ ga('create', '#{ tracking_id }', '#{ domain_name || 'auto' }'#{ options.allow_linker ? ", {'allowLinker': true}" : '' });#{
61
+ options.anonymize_ip ? "\n ga('set', 'anonymizeIp', true);" : '' }
62
+ ga('send', 'pageview');
47
63
  </script>}
48
64
  end
49
65
  end
@@ -0,0 +1,5 @@
1
+ module Middleman
2
+ module GoogleAnalytics
3
+ VERSION = "0.1.1"
4
+ end
5
+ end
@@ -1,13 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
+ require "middleman-google-analytics/version"
3
4
 
4
5
  Gem::Specification.new do |s|
5
6
  s.name = "middleman-google-analytics"
6
- s.version = "0.0.3"
7
+ s.version = Middleman::GoogleAnalytics::VERSION
7
8
  s.platform = Gem::Platform::RUBY
8
- s.authors = ["Jon Frisby"]
9
- s.email = ["jfrisby@mrjoy.com"]
10
- s.homepage = "http://github.com/MrJoy/middleman-google-analytics"
9
+ s.authors = ["Daniel Bayerlein", "Jon Frisby"]
10
+ s.email = ["daniel.bayerlein@googlemail.com", "jfrisby@mrjoy.com"]
11
+ s.homepage = "https://github.com/danielbayerlein/middleman-google-analytics"
11
12
  s.summary = %q{A Middleman plugin for handling Google Analytics tracking code.}
12
13
  s.license = "MIT"
13
14
  # s.description = %q{A longer description of your extension}
metadata CHANGED
@@ -1,50 +1,56 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-google-analytics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
+ - Daniel Bayerlein
7
8
  - Jon Frisby
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-01-07 00:00:00.000000000 Z
12
+ date: 2014-04-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: middleman-core
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - '>='
18
+ - - ">="
18
19
  - !ruby/object:Gem::Version
19
20
  version: 3.0.6
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
- - - '>='
25
+ - - ">="
25
26
  - !ruby/object:Gem::Version
26
27
  version: 3.0.6
27
28
  description:
28
29
  email:
30
+ - daniel.bayerlein@googlemail.com
29
31
  - jfrisby@mrjoy.com
30
32
  executables: []
31
33
  extensions: []
32
34
  extra_rdoc_files: []
33
35
  files:
34
- - .gitignore
35
- - .ruby-gemset
36
- - .ruby-version
36
+ - ".gitignore"
37
+ - ".travis.yml"
37
38
  - CHANGELOG.md
38
39
  - Gemfile
39
40
  - LICENSE
40
41
  - README.md
41
42
  - Rakefile
43
+ - features/helper.feature
42
44
  - features/support/env.rb
45
+ - features/universal.feature
46
+ - fixtures/test-app-universal/source/index.html.erb
47
+ - fixtures/test-app/source/index.html.erb
43
48
  - lib/middleman-google-analytics.rb
44
49
  - lib/middleman-google-analytics/extension.rb
50
+ - lib/middleman-google-analytics/version.rb
45
51
  - lib/middleman_extension.rb
46
52
  - middleman-google-analytics.gemspec
47
- homepage: http://github.com/MrJoy/middleman-google-analytics
53
+ homepage: https://github.com/danielbayerlein/middleman-google-analytics
48
54
  licenses:
49
55
  - MIT
50
56
  metadata: {}
@@ -54,20 +60,22 @@ require_paths:
54
60
  - lib
55
61
  required_ruby_version: !ruby/object:Gem::Requirement
56
62
  requirements:
57
- - - '>='
63
+ - - ">="
58
64
  - !ruby/object:Gem::Version
59
65
  version: '0'
60
66
  required_rubygems_version: !ruby/object:Gem::Requirement
61
67
  requirements:
62
- - - '>='
68
+ - - ">="
63
69
  - !ruby/object:Gem::Version
64
70
  version: '0'
65
71
  requirements: []
66
72
  rubyforge_project:
67
- rubygems_version: 2.0.3
73
+ rubygems_version: 2.2.2
68
74
  signing_key:
69
75
  specification_version: 4
70
76
  summary: A Middleman plugin for handling Google Analytics tracking code.
71
77
  test_files:
78
+ - features/helper.feature
72
79
  - features/support/env.rb
80
+ - features/universal.feature
73
81
  has_rdoc:
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- middleman-google-analytics
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- ruby-2.0.0-p247