rails_apps_pages 0.5.10 → 0.5.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.textile +4 -0
- data/README.textile +14 -0
- data/lib/generators/analytics/google_generator.rb +16 -0
- data/lib/generators/analytics/segmentio_generator.rb +16 -0
- data/lib/generators/analytics/templates/google_analytics.js.coffee +44 -0
- data/lib/generators/analytics/templates/segmentio.js +58 -0
- data/lib/rails_apps_pages/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac955e637bfab4fc99212eecbc77ee7f023259fe
|
4
|
+
data.tar.gz: 7c9c85e7ad13f9e704fecb946017ddeae7c584ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bc31829fc1aa05646134672e903ff2cb8d0a35927819fb9a22661e8d426b5590f6ef1b211491f4d3c435f1ea030b8ed8111e8c09f2df440ce77fdb6cdc8a8d6
|
7
|
+
data.tar.gz: 3a77c433b7720495cb919dbebfd465502821ed193f11ad730d0331bb721903dcd5fb7d5d126a98786069f70a859636ff2a83b81cc3a71f2dc9e61e56d7a1b67c
|
data/CHANGELOG.textile
CHANGED
data/README.textile
CHANGED
@@ -131,6 +131,20 @@ Remove commented lines and multiple blank lines from the file *config/routes.rb*
|
|
131
131
|
$ rails generate clean:routes
|
132
132
|
</pre>
|
133
133
|
|
134
|
+
h2. Generate Analytics Files
|
135
|
+
|
136
|
+
Add a file containing JavaScript code to set up page-view tracking with "Google Analytics":http://www.google.com/analytics/:
|
137
|
+
|
138
|
+
<pre>
|
139
|
+
$ rails generate analytics:google
|
140
|
+
</pre>
|
141
|
+
|
142
|
+
Add a file containing JavaScript code to set up page-view tracking with "Segment.io":https://segment.io/:
|
143
|
+
|
144
|
+
<pre>
|
145
|
+
$ rails generate analytics:segmentio
|
146
|
+
</pre>
|
147
|
+
|
134
148
|
h2. Issues
|
135
149
|
|
136
150
|
Any issues? Please create an "issue":http://github.com/RailsApps/rails_apps_pages/issues on GitHub. Reporting issues (and patching!) helps everyone.
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Analytics
|
4
|
+
module Generators
|
5
|
+
class GoogleGenerator < ::Rails::Generators::Base
|
6
|
+
source_root File.expand_path("../templates", __FILE__)
|
7
|
+
|
8
|
+
desc "add Google Analytics to a Rails application"
|
9
|
+
|
10
|
+
def add_google_analytics
|
11
|
+
copy_file 'google_analytics.js.coffee', 'app/assets/javascripts/google_analytics.js.coffee'
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Analytics
|
4
|
+
module Generators
|
5
|
+
class SegmentioGenerator < ::Rails::Generators::Base
|
6
|
+
source_root File.expand_path("../templates", __FILE__)
|
7
|
+
|
8
|
+
desc "add Segment.io tracking to a Rails application"
|
9
|
+
|
10
|
+
def add_segmentio
|
11
|
+
copy_file 'segmentio.js', 'app/assets/javascripts/segmentio.js'
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# thanks to Jonathon Wolfe at http://reed.github.io/turbolinks-compatibility/google_analytics.html
|
2
|
+
|
3
|
+
class @GoogleAnalytics
|
4
|
+
|
5
|
+
@load: ->
|
6
|
+
# Google Analytics depends on a global _gaq array. window is the global scope.
|
7
|
+
window._gaq = []
|
8
|
+
window._gaq.push ["_setAccount", GoogleAnalytics.analyticsId()]
|
9
|
+
|
10
|
+
# Create a script element and insert it in the DOM
|
11
|
+
ga = document.createElement("script")
|
12
|
+
ga.type = "text/javascript"
|
13
|
+
ga.async = true
|
14
|
+
ga.src = ((if "https:" is document.location.protocol then "https://ssl" else "http://www")) + ".google-analytics.com/ga.js"
|
15
|
+
firstScript = document.getElementsByTagName("script")[0]
|
16
|
+
firstScript.parentNode.insertBefore ga, firstScript
|
17
|
+
|
18
|
+
# If Turbolinks is supported, set up a callback to track pageviews on page:change.
|
19
|
+
# If it isn't supported, just track the pageview now.
|
20
|
+
if typeof Turbolinks isnt 'undefined' and Turbolinks.supported
|
21
|
+
document.addEventListener "page:change", (->
|
22
|
+
GoogleAnalytics.trackPageview()
|
23
|
+
), true
|
24
|
+
else
|
25
|
+
GoogleAnalytics.trackPageview()
|
26
|
+
|
27
|
+
@trackPageview: (url) ->
|
28
|
+
unless GoogleAnalytics.isLocalRequest()
|
29
|
+
if url
|
30
|
+
window._gaq.push ["_trackPageview", url]
|
31
|
+
else
|
32
|
+
window._gaq.push ["_trackPageview"]
|
33
|
+
window._gaq.push ["_trackPageLoadTime"]
|
34
|
+
|
35
|
+
@isLocalRequest: ->
|
36
|
+
GoogleAnalytics.documentDomainIncludes "local"
|
37
|
+
|
38
|
+
@documentDomainIncludes: (str) ->
|
39
|
+
document.domain.indexOf(str) isnt -1
|
40
|
+
|
41
|
+
@analyticsId: ->
|
42
|
+
'UA-XXXXXXX-XX'
|
43
|
+
|
44
|
+
GoogleAnalytics.load()
|
@@ -0,0 +1,58 @@
|
|
1
|
+
// Create a queue, but don't obliterate an existing one!
|
2
|
+
window.analytics = window.analytics || [];
|
3
|
+
|
4
|
+
// A list of the methods in Analytics.js to stub.
|
5
|
+
window.analytics.methods = ['identify', 'group', 'track',
|
6
|
+
'page', 'pageview', 'alias', 'ready', 'on', 'once', 'off',
|
7
|
+
'trackLink', 'trackForm', 'trackClick', 'trackSubmit'];
|
8
|
+
|
9
|
+
// Define a factory to create stubs. These are placeholders
|
10
|
+
// for methods in Analytics.js so that you never have to wait
|
11
|
+
// for it to load to actually record data. The `method` is
|
12
|
+
// stored as the first argument, so we can replay the data.
|
13
|
+
window.analytics.factory = function(method){
|
14
|
+
return function(){
|
15
|
+
var args = Array.prototype.slice.call(arguments);
|
16
|
+
args.unshift(method);
|
17
|
+
window.analytics.push(args);
|
18
|
+
return window.analytics;
|
19
|
+
};
|
20
|
+
};
|
21
|
+
|
22
|
+
// For each of our methods, generate a queueing stub.
|
23
|
+
for (var i = 0; i < window.analytics.methods.length; i++) {
|
24
|
+
var key = window.analytics.methods[i];
|
25
|
+
window.analytics[key] = window.analytics.factory(key);
|
26
|
+
}
|
27
|
+
|
28
|
+
// Define a method to load Analytics.js from our CDN,
|
29
|
+
// and that will be sure to only ever load it once.
|
30
|
+
window.analytics.load = function(key){
|
31
|
+
if (document.getElementById('analytics-js')) return;
|
32
|
+
|
33
|
+
// Create an async script element based on your key.
|
34
|
+
var script = document.createElement('script');
|
35
|
+
script.type = 'text/javascript';
|
36
|
+
script.id = 'analytics-js';
|
37
|
+
script.async = true;
|
38
|
+
script.src = ('https:' === document.location.protocol
|
39
|
+
? 'https://' : 'http://')
|
40
|
+
+ 'cdn.segment.io/analytics.js/v1/'
|
41
|
+
+ key + '/analytics.min.js';
|
42
|
+
|
43
|
+
// Insert our script next to the first script element.
|
44
|
+
var first = document.getElementsByTagName('script')[0];
|
45
|
+
first.parentNode.insertBefore(script, first);
|
46
|
+
};
|
47
|
+
|
48
|
+
// Add a version to keep track of what's in the wild.
|
49
|
+
window.analytics.SNIPPET_VERSION = '2.0.9';
|
50
|
+
|
51
|
+
// Load Analytics.js with your key, which will automatically
|
52
|
+
// load the tools you've enabled for your account. Boosh!
|
53
|
+
window.analytics.load('SEGMENTIO_API_KEY');
|
54
|
+
|
55
|
+
// accommodate Turbolinks and make the first page call to load the integrations.
|
56
|
+
$(document).on('ready page:change', function() {
|
57
|
+
window.analytics.page();
|
58
|
+
})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_apps_pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Kehoe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -54,6 +54,10 @@ files:
|
|
54
54
|
- LICENSE.txt
|
55
55
|
- README.textile
|
56
56
|
- Rakefile
|
57
|
+
- lib/generators/analytics/google_generator.rb
|
58
|
+
- lib/generators/analytics/segmentio_generator.rb
|
59
|
+
- lib/generators/analytics/templates/google_analytics.js.coffee
|
60
|
+
- lib/generators/analytics/templates/segmentio.js
|
57
61
|
- lib/generators/clean/gemfile_generator.rb
|
58
62
|
- lib/generators/clean/routes_generator.rb
|
59
63
|
- lib/generators/pages/about/about_generator.rb
|