middleman-google-analytics 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4baee28c1f8e37eeab8dc190f5e2c0036b249a82
4
+ data.tar.gz: a99382e18ed8c6f16e33626ec385c7e279e78250
5
+ SHA512:
6
+ metadata.gz: d7f78cd409fb642424b3c4a9661e351d547ae0f115ab760fd1255eb84a031d6fed333c4a5589741d61ce93e7604ab8ef606cbce0139d87ae1c5ed6facd30eb31
7
+ data.tar.gz: e1cf7dee9abb7fa66698ae4f4e58e253faed8499c93a3ffb03d6cdf7304efb15cadd60971a97a8d56e1be1d685ad0a2933d55c6316a0f4d3aca6387e678e4109
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  # Ignore bundler lock file
2
- Gemfile.lock
2
+ Gemfile.lock
3
+ pkg
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ middleman-google-analytics
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.0.0-p247
data/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # Changes
2
+
3
+ ## 0.0.2, 2013-10-16
4
+
5
+ * Remove CDATA markerts that were choking some minifiers.
6
+ * Allow linking of sub-domains to their parent domain.
7
+ * Make URLs protocol-neutral so things work on both HTTP and HTTPS.
8
+ * (Optionally) use GA debug mode in preview server.
9
+ * Implement ability to anonymize IPs.
10
+ * Use asynchronous loading for GA JS.
11
+
12
+ ## 0.0.1, 2013-03-10
13
+
14
+ * Initial version
data/README.md CHANGED
@@ -30,6 +30,18 @@ Or ERB:
30
30
  <%= google_analytics_tag %>
31
31
  ```
32
32
 
33
+ ### Configuration
34
+
35
+ ```ruby
36
+ activate :google_analytics do |ga|
37
+ ga.tracking_id = 'UA-XXXXXXX-X' # property ID
38
+ ga.debug = false # Manually set debug flag (if true, links to /u/ga_debug.js)
39
+ ga.anonymize_ip = true # removing the last octet of the IP address
40
+ ga.domain_name = 'example.com' # Track for (cross-domain tracking)
41
+ ga.allow_linker = true # Multiple top-level domains (needs domain_name to be set)
42
+ end
43
+ ```
44
+
33
45
  ## Only Including Tracking Code in Builds
34
46
 
35
47
  To include the tracking code only in builds, and not when running
@@ -0,0 +1,4 @@
1
+ PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
2
+ require "middleman-core"
3
+ require "middleman-core/step_definitions"
4
+ require File.join(PROJECT_ROOT_PATH, 'lib', 'middleman-google-analytics')
@@ -1,6 +1,5 @@
1
1
  # Require core library
2
- require "middleman-core"
3
-
2
+ require 'middleman-core'
4
3
 
5
4
  # Register extensions which can be activated
6
5
  # Make sure we have the version of Middleman we expect
@@ -1,16 +1,21 @@
1
1
  module Middleman
2
2
  module GoogleAnalytics
3
- class Options < Struct.new(:tracking_id); end
3
+ class Options < Struct.new(:tracking_id, :anonymize_ip, :allow_linker, :domain_name, :debug); end
4
4
 
5
5
  class << self
6
6
  def options
7
- @@options ||= {}
7
+ @@options ||= Options.new
8
8
  end
9
9
 
10
10
  def registered(app, options={})
11
- @@options ||= Options.new(options)
11
+ @@options ||= Options.new(*options.values_at(*Options.members))
12
12
  yield @@options if block_given?
13
13
 
14
+ if @@options.allow_linker and not @@options.domain_name
15
+ $stderr.puts 'Google Analytics: Please specify a domain_name when using allow_linker'
16
+ raise 'No domain_name given'
17
+ end
18
+
14
19
  app.send :include, InstanceMethods
15
20
  end
16
21
  alias :included :registered
@@ -18,15 +23,27 @@ module Middleman
18
23
 
19
24
  module InstanceMethods
20
25
  def google_analytics_tag
21
- tracking_id = ::Middleman::GoogleAnalytics.options.tracking_id
22
- if(tracking_id)
23
- return %Q{<script type="text/javascript">
24
- //<![CDATA[
25
- var _gaq=[['_setAccount','#{tracking_id}'],['_trackPageview']];
26
- (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
27
- g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
28
- s.parentNode.insertBefore(g,s)}(document,'script'));
29
- //]]>
26
+ options = ::Middleman::GoogleAnalytics.options
27
+
28
+ options.debug = development? if options.debug.nil?
29
+ ga = options.debug ? 'u/ga_debug' : 'ga'
30
+ domain_name = options.domain_name
31
+
32
+ if tracking_id = options.tracking_id
33
+ gaq = []
34
+ gaq << ['_setAccount', "#{tracking_id}"]
35
+ gaq << ['_setDomainName', "#{domain_name}"] if domain_name
36
+ gaq << ['_setAllowLinker', true] if options.allow_linker
37
+ gaq << ['_gat._anonymizeIp'] if options.anonymize_ip
38
+ gaq << ['_trackPageview']
39
+ %Q{<script type="text/javascript">
40
+ var _gaq = _gaq || [];
41
+ #{gaq.map! { |x| "_gaq.push(#{x});" }.join("\n ")}
42
+ (function() {
43
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
44
+ ga.src = ('https:' == document.location.protocol ? '//ssl' : '//www') + '.google-analytics.com/#{ga}.js';
45
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
46
+ })();
30
47
  </script>}
31
48
  end
32
49
  end
@@ -1 +1 @@
1
- require "middleman-google-analytics"
1
+ require 'middleman-google-analytics'
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "middleman-google-analytics"
6
- s.version = "0.0.1"
6
+ s.version = "0.0.2"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Jon Frisby"]
9
9
  s.email = ["jfrisby@mrjoy.com"]
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-google-analytics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jon Frisby
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-10 00:00:00.000000000 Z
11
+ date: 2013-10-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: middleman-core
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.6
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.0.6
30
27
  description:
@@ -35,38 +32,41 @@ extensions: []
35
32
  extra_rdoc_files: []
36
33
  files:
37
34
  - .gitignore
38
- - .rvmrc
35
+ - .ruby-gemset
36
+ - .ruby-version
37
+ - CHANGELOG.md
39
38
  - Gemfile
40
39
  - LICENSE
41
40
  - README.md
42
41
  - Rakefile
42
+ - features/support/env.rb
43
43
  - lib/middleman-google-analytics.rb
44
44
  - lib/middleman-google-analytics/extension.rb
45
45
  - lib/middleman_extension.rb
46
46
  - middleman-google-analytics.gemspec
47
47
  homepage: http://github.com/MrJoy/middleman-google-analytics
48
48
  licenses: []
49
+ metadata: {}
49
50
  post_install_message:
50
51
  rdoc_options: []
51
52
  require_paths:
52
53
  - lib
53
54
  required_ruby_version: !ruby/object:Gem::Requirement
54
- none: false
55
55
  requirements:
56
- - - ! '>='
56
+ - - '>='
57
57
  - !ruby/object:Gem::Version
58
58
  version: '0'
59
59
  required_rubygems_version: !ruby/object:Gem::Requirement
60
- none: false
61
60
  requirements:
62
- - - ! '>='
61
+ - - '>='
63
62
  - !ruby/object:Gem::Version
64
63
  version: '0'
65
64
  requirements: []
66
65
  rubyforge_project:
67
- rubygems_version: 1.8.25
66
+ rubygems_version: 2.0.6
68
67
  signing_key:
69
- specification_version: 3
68
+ specification_version: 4
70
69
  summary: A Middleman plugin for handling Google Analytics tracking code.
71
- test_files: []
70
+ test_files:
71
+ - features/support/env.rb
72
72
  has_rdoc:
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use --create ruby-1.9.3-p374@middleman-google-analytics