embed_google 0.0.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.
- data/.gitignore +5 -0
- data/.rspec +2 -0
- data/.rvmrc +3 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +31 -0
- data/README.rdoc +0 -0
- data/Rakefile +2 -0
- data/embed_google.gemspec +24 -0
- data/lib/embed_google.rb +11 -0
- data/lib/embed_google/analytics.rb +26 -0
- data/spec/embed_google/analytics.rb +38 -0
- data/spec/spec_helper.rb +1 -0
- metadata +107 -0
data/.rspec
ADDED
data/.rvmrc
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
embed_google (0.0.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.1.2)
|
10
|
+
fuubar (0.0.5)
|
11
|
+
rspec (~> 2.0)
|
12
|
+
rspec-instafail (~> 0.1.4)
|
13
|
+
ruby-progressbar (~> 0.0.10)
|
14
|
+
rspec (2.6.0)
|
15
|
+
rspec-core (~> 2.6.0)
|
16
|
+
rspec-expectations (~> 2.6.0)
|
17
|
+
rspec-mocks (~> 2.6.0)
|
18
|
+
rspec-core (2.6.4)
|
19
|
+
rspec-expectations (2.6.0)
|
20
|
+
diff-lcs (~> 1.1.2)
|
21
|
+
rspec-instafail (0.1.8)
|
22
|
+
rspec-mocks (2.6.0)
|
23
|
+
ruby-progressbar (0.0.10)
|
24
|
+
|
25
|
+
PLATFORMS
|
26
|
+
ruby
|
27
|
+
|
28
|
+
DEPENDENCIES
|
29
|
+
embed_google!
|
30
|
+
fuubar
|
31
|
+
rspec
|
data/README.rdoc
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "embed_google"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "embed_google"
|
7
|
+
s.version = EmbedGoogle::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Sebastian von Conrad"]
|
10
|
+
s.email = ["sebastian@vonconrad.com"]
|
11
|
+
s.homepage = "http://github.com/vonconrad/embed_google"
|
12
|
+
s.summary = %q{Gem for embedding various Google services (e.g. analytics tracking) in Rack apps}
|
13
|
+
s.description = %q{This gem allows easy and flexible embedding of Google services (currently only analytics tracking) in Rack apps, including Ruby on Rails}
|
14
|
+
|
15
|
+
s.rubyforge_project = "embed_google"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_development_dependency "rspec"
|
23
|
+
s.add_development_dependency "fuubar"
|
24
|
+
end
|
data/lib/embed_google.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module EmbedGoogle
|
2
|
+
class Analytics
|
3
|
+
class << self
|
4
|
+
attr_accessor :id
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_accessor :account_id
|
8
|
+
|
9
|
+
def initialize(id=nil, options={})
|
10
|
+
self.account_id = id || self.class.id
|
11
|
+
raise ArgumentError, 'Account ID is required' unless account_id
|
12
|
+
end
|
13
|
+
|
14
|
+
def script
|
15
|
+
str = "var _gaq = _gaq || [];\n"
|
16
|
+
str += "_gaq.push(['_setAccount', '#{account_id}']);\n"
|
17
|
+
str += "_gaq.push(['_trackPageview']);\n\n"
|
18
|
+
str += "(function() {\n"
|
19
|
+
str += " var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n"
|
20
|
+
str += " ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n"
|
21
|
+
str += " var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n"
|
22
|
+
str += "})();\n"
|
23
|
+
"<script type='text/javascript'>\n" + str + "</script>\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe EmbedGoogle::Analytics do
|
4
|
+
it 'refuses to initiate without an account id' do
|
5
|
+
lambda { EmbedGoogle::Analytics.new }.should raise_error('Account ID is required')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'uses a prespecified account id' do
|
9
|
+
EmbedGoogle::Analytics.id = 'UA-1234567-1'
|
10
|
+
|
11
|
+
instance = EmbedGoogle::Analytics.new
|
12
|
+
instance.account_id.should == 'UA-1234567-1'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'overwrites a prespecified account id' do
|
16
|
+
EmbedGoogle::Analytics.id = 'UA-1234567-1'
|
17
|
+
|
18
|
+
instance = EmbedGoogle::Analytics.new('UA-1234567-2')
|
19
|
+
instance.account_id.should == 'UA-1234567-2'
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'returns the simplest variation of Analytics javascript' do
|
23
|
+
javascript = EmbedGoogle::Analytics.new('UA-1234567-1').script
|
24
|
+
javascript.should == <<-SCRIPT
|
25
|
+
<script type='text/javascript'>
|
26
|
+
var _gaq = _gaq || [];
|
27
|
+
_gaq.push(['_setAccount', 'UA-1234567-1']);
|
28
|
+
_gaq.push(['_trackPageview']);
|
29
|
+
|
30
|
+
(function() {
|
31
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
32
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
33
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
34
|
+
})();
|
35
|
+
</script>
|
36
|
+
SCRIPT
|
37
|
+
end
|
38
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'embed_google')
|
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: embed_google
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Sebastian von Conrad
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-07-16 00:00:00 +09:30
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rspec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: fuubar
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
description: This gem allows easy and flexible embedding of Google services (currently only analytics tracking) in Rack apps, including Ruby on Rails
|
50
|
+
email:
|
51
|
+
- sebastian@vonconrad.com
|
52
|
+
executables: []
|
53
|
+
|
54
|
+
extensions: []
|
55
|
+
|
56
|
+
extra_rdoc_files: []
|
57
|
+
|
58
|
+
files:
|
59
|
+
- .gitignore
|
60
|
+
- .rspec
|
61
|
+
- .rvmrc
|
62
|
+
- Gemfile
|
63
|
+
- Gemfile.lock
|
64
|
+
- README.rdoc
|
65
|
+
- Rakefile
|
66
|
+
- embed_google.gemspec
|
67
|
+
- lib/embed_google.rb
|
68
|
+
- lib/embed_google/analytics.rb
|
69
|
+
- spec/embed_google/analytics.rb
|
70
|
+
- spec/spec_helper.rb
|
71
|
+
has_rdoc: true
|
72
|
+
homepage: http://github.com/vonconrad/embed_google
|
73
|
+
licenses: []
|
74
|
+
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
hash: 3
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
version: "0"
|
98
|
+
requirements: []
|
99
|
+
|
100
|
+
rubyforge_project: embed_google
|
101
|
+
rubygems_version: 1.6.2
|
102
|
+
signing_key:
|
103
|
+
specification_version: 3
|
104
|
+
summary: Gem for embedding various Google services (e.g. analytics tracking) in Rack apps
|
105
|
+
test_files:
|
106
|
+
- spec/embed_google/analytics.rb
|
107
|
+
- spec/spec_helper.rb
|