middleman-google-analytics 0.0.1 → 0.0.2

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 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