analytics-rails 0.2.1 → 0.3.0
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 +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +13 -7
- data/Rakefile +1 -14
- data/lib/analytics/rails.rb +2 -1
- data/lib/analytics/rails/extensions/action_view/base.rb +38 -0
- data/lib/analytics/rails/railtie.rb +4 -2
- data/lib/analytics/rails/version.rb +1 -1
- data/test/dummy/Rakefile +1 -2
- data/test/dummy/app/assets/javascripts/application.js +2 -2
- data/test/dummy/app/assets/stylesheets/application.css +6 -4
- data/test/dummy/app/views/layouts/application.html.erb +9 -12
- data/test/dummy/bin/bundle +1 -0
- data/test/dummy/bin/rails +2 -1
- data/test/dummy/bin/rake +1 -0
- data/test/dummy/bin/setup +30 -0
- data/test/dummy/config.ru +1 -1
- data/test/dummy/config/application.rb +6 -2
- data/test/dummy/config/boot.rb +1 -1
- data/test/dummy/config/environment.rb +1 -1
- data/test/dummy/config/environments/development.rb +14 -5
- data/test/dummy/config/environments/production.rb +18 -26
- data/test/dummy/config/environments/test.rb +10 -12
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/mime_types.rb +1 -2
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/dummy/config/routes.rb +2 -2
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/log/test.log +108 -0
- data/test/dummy/public/404.html +58 -55
- data/test/dummy/public/422.html +58 -55
- data/test/dummy/public/500.html +57 -54
- data/test/tag_test.rb +47 -0
- data/test/test_helper.rb +5 -14
- metadata +21 -46
- data/lib/analytics/rails/action_view/base.rb +0 -43
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/config/database.yml +0 -25
- data/test/dummy/config/initializers/secret_token.rb +0 -13
- data/test/dummy/db/schema.rb +0 -16
- data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/include_tag_test.rb +0 -28
data/test/dummy/public/500.html
CHANGED
@@ -1,57 +1,60 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
|
-
<head>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
<
|
53
|
-
<
|
54
|
-
|
55
|
-
|
56
|
-
</
|
3
|
+
<head>
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<style>
|
7
|
+
body {
|
8
|
+
background-color: #EFEFEF;
|
9
|
+
color: #2E2F30;
|
10
|
+
text-align: center;
|
11
|
+
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
13
|
+
}
|
14
|
+
div.dialog {
|
15
|
+
width: 95%;
|
16
|
+
max-width: 33em;
|
17
|
+
margin: 4em auto 0;
|
18
|
+
}
|
19
|
+
div.dialog > div {
|
20
|
+
border: 1px solid #CCC;
|
21
|
+
border-right-color: #999;
|
22
|
+
border-left-color: #999;
|
23
|
+
border-bottom-color: #BBB;
|
24
|
+
border-top: #B00100 solid 4px;
|
25
|
+
border-top-left-radius: 9px;
|
26
|
+
border-top-right-radius: 9px;
|
27
|
+
background-color: white;
|
28
|
+
padding: 7px 12% 0;
|
29
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
30
|
+
}
|
31
|
+
h1 {
|
32
|
+
font-size: 100%;
|
33
|
+
color: #730E15;
|
34
|
+
line-height: 1.5em;
|
35
|
+
}
|
36
|
+
div.dialog > p {
|
37
|
+
margin: 0 0 1em;
|
38
|
+
padding: 1em;
|
39
|
+
background-color: #F7F7F7;
|
40
|
+
border: 1px solid #CCC;
|
41
|
+
border-right-color: #999;
|
42
|
+
border-left-color: #999;
|
43
|
+
border-bottom-color: #999;
|
44
|
+
border-bottom-left-radius: 4px;
|
45
|
+
border-bottom-right-radius: 4px;
|
46
|
+
border-top-color: #DADADA;
|
47
|
+
color: #666;
|
48
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
49
|
+
}
|
50
|
+
</style>
|
51
|
+
</head>
|
52
|
+
<body>
|
53
|
+
<div class="dialog">
|
54
|
+
<div>
|
55
|
+
<h1>We're sorry, but something went wrong.</h1>
|
56
|
+
</div>
|
57
|
+
<p>If you are the application owner check the logs for more information.</p>
|
58
|
+
</div>
|
59
|
+
</body>
|
57
60
|
</html>
|
data/test/tag_test.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TagTest < ActionView::TestCase
|
4
|
+
|
5
|
+
test 'include' do
|
6
|
+
with_env 'production' do
|
7
|
+
tag = google_analytics_include_tag('id')
|
8
|
+
assert_includes tag, 'ga("create", "id", "auto");'
|
9
|
+
assert_includes tag, 'ga("send", "pageview", {});'
|
10
|
+
|
11
|
+
tag = google_analytics_include_tag('id', other: 'value')
|
12
|
+
assert_includes tag, 'ga("create", "id", "auto");'
|
13
|
+
assert_includes tag, 'ga("send", "pageview", {"other":"value"});'
|
14
|
+
end
|
15
|
+
|
16
|
+
with_env 'development' do
|
17
|
+
assert_not google_analytics_include_tag
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
test 'event' do
|
22
|
+
with_env 'production' do
|
23
|
+
assert_includes(
|
24
|
+
google_analytics_event_tag('Popup', 'click'),
|
25
|
+
'ga("send", "event", "Popup", "click", {});'
|
26
|
+
)
|
27
|
+
assert_includes(
|
28
|
+
google_analytics_event_tag('Video', 'play', 'ad.mp4', 10, other: 'value'),
|
29
|
+
'ga("send", "event", "Video", "play", "ad.mp4", 10, {"other":"value"});'
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
with_env 'development' do
|
34
|
+
assert_not google_analytics_event_tag
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def with_env(value)
|
41
|
+
old_env = Rails.env
|
42
|
+
Rails.env = value
|
43
|
+
yield
|
44
|
+
Rails.env = old_env
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,24 +1,15 @@
|
|
1
1
|
# Configure Rails Environment
|
2
2
|
ENV['RAILS_ENV'] = 'test'
|
3
3
|
|
4
|
-
require File.expand_path('
|
4
|
+
require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
|
5
5
|
require 'rails/test_help'
|
6
6
|
|
7
|
-
|
7
|
+
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
8
|
+
# to be shown.
|
9
|
+
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
8
10
|
|
9
11
|
# Load support files
|
10
12
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
13
|
|
12
|
-
# Load fixtures from the engine
|
13
|
-
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
14
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Load database
|
18
|
-
config = YAML::load(File.read(File.expand_path('../dummy/config/database.yml', __FILE__)))
|
19
|
-
config['test']['adapter'] = 'jdbcsqlite3' if RUBY_PLATFORM == 'java'
|
20
|
-
ActiveRecord::Base.establish_connection(config['test'])
|
21
|
-
load(File.expand_path('../dummy/db/schema.rb', __FILE__))
|
22
|
-
|
23
14
|
# Include helpers
|
24
|
-
ActionView::TestCase.
|
15
|
+
ActionView::TestCase.include Analytics::Rails::Extensions::ActionView::Base
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: analytics-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmontossi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.
|
19
|
+
version: 4.2.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 4.3.0
|
@@ -26,28 +26,13 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 4.
|
29
|
+
version: 4.2.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.3.0
|
33
|
-
|
34
|
-
name: sqlite3
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '1.3'
|
40
|
-
type: :development
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '1.3'
|
47
|
-
description: Adds a simple view helper to create the google analytics include tag
|
48
|
-
in rails.
|
33
|
+
description: Adds a helper to create the google analytics script in rails.
|
49
34
|
email:
|
50
|
-
- mmontossi@
|
35
|
+
- mmontossi@gmail.com
|
51
36
|
executables: []
|
52
37
|
extensions: []
|
53
38
|
extra_rdoc_files: []
|
@@ -57,10 +42,9 @@ files:
|
|
57
42
|
- Rakefile
|
58
43
|
- lib/analytics-rails.rb
|
59
44
|
- lib/analytics/rails.rb
|
60
|
-
- lib/analytics/rails/action_view/base.rb
|
45
|
+
- lib/analytics/rails/extensions/action_view/base.rb
|
61
46
|
- lib/analytics/rails/railtie.rb
|
62
47
|
- lib/analytics/rails/version.rb
|
63
|
-
- test/dummy/README.rdoc
|
64
48
|
- test/dummy/Rakefile
|
65
49
|
- test/dummy/app/assets/javascripts/application.js
|
66
50
|
- test/dummy/app/assets/stylesheets/application.css
|
@@ -70,35 +54,31 @@ files:
|
|
70
54
|
- test/dummy/bin/bundle
|
71
55
|
- test/dummy/bin/rails
|
72
56
|
- test/dummy/bin/rake
|
57
|
+
- test/dummy/bin/setup
|
73
58
|
- test/dummy/config.ru
|
74
59
|
- test/dummy/config/application.rb
|
75
60
|
- test/dummy/config/boot.rb
|
76
|
-
- test/dummy/config/database.yml
|
77
61
|
- test/dummy/config/environment.rb
|
78
62
|
- test/dummy/config/environments/development.rb
|
79
63
|
- test/dummy/config/environments/production.rb
|
80
64
|
- test/dummy/config/environments/test.rb
|
65
|
+
- test/dummy/config/initializers/assets.rb
|
81
66
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
67
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
82
68
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
83
69
|
- test/dummy/config/initializers/inflections.rb
|
84
70
|
- test/dummy/config/initializers/mime_types.rb
|
85
|
-
- test/dummy/config/initializers/secret_token.rb
|
86
71
|
- test/dummy/config/initializers/session_store.rb
|
87
72
|
- test/dummy/config/initializers/wrap_parameters.rb
|
88
73
|
- test/dummy/config/locales/en.yml
|
89
74
|
- test/dummy/config/routes.rb
|
90
|
-
- test/dummy/
|
75
|
+
- test/dummy/config/secrets.yml
|
76
|
+
- test/dummy/log/test.log
|
91
77
|
- test/dummy/public/404.html
|
92
78
|
- test/dummy/public/422.html
|
93
79
|
- test/dummy/public/500.html
|
94
80
|
- test/dummy/public/favicon.ico
|
95
|
-
- test/
|
96
|
-
- test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
|
97
|
-
- test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
|
98
|
-
- test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
|
99
|
-
- test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
100
|
-
- test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
101
|
-
- test/include_tag_test.rb
|
81
|
+
- test/tag_test.rb
|
102
82
|
- test/test_helper.rb
|
103
83
|
homepage: https://github.com/mmontossi/analytics-rails
|
104
84
|
licenses:
|
@@ -112,7 +92,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
92
|
requirements:
|
113
93
|
- - ">="
|
114
94
|
- !ruby/object:Gem::Version
|
115
|
-
version: 1.
|
95
|
+
version: 2.1.0
|
116
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
97
|
requirements:
|
118
98
|
- - ">="
|
@@ -120,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
100
|
version: '0'
|
121
101
|
requirements: []
|
122
102
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
103
|
+
rubygems_version: 2.5.1
|
124
104
|
signing_key:
|
125
105
|
specification_version: 4
|
126
106
|
summary: Google analytics for rails.
|
@@ -133,35 +113,30 @@ test_files:
|
|
133
113
|
- test/dummy/bin/bundle
|
134
114
|
- test/dummy/bin/rails
|
135
115
|
- test/dummy/bin/rake
|
116
|
+
- test/dummy/bin/setup
|
136
117
|
- test/dummy/config/application.rb
|
137
118
|
- test/dummy/config/boot.rb
|
138
|
-
- test/dummy/config/database.yml
|
139
119
|
- test/dummy/config/environment.rb
|
140
120
|
- test/dummy/config/environments/development.rb
|
141
121
|
- test/dummy/config/environments/production.rb
|
142
122
|
- test/dummy/config/environments/test.rb
|
123
|
+
- test/dummy/config/initializers/assets.rb
|
143
124
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
125
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
144
126
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
145
127
|
- test/dummy/config/initializers/inflections.rb
|
146
128
|
- test/dummy/config/initializers/mime_types.rb
|
147
|
-
- test/dummy/config/initializers/secret_token.rb
|
148
129
|
- test/dummy/config/initializers/session_store.rb
|
149
130
|
- test/dummy/config/initializers/wrap_parameters.rb
|
150
131
|
- test/dummy/config/locales/en.yml
|
151
132
|
- test/dummy/config/routes.rb
|
133
|
+
- test/dummy/config/secrets.yml
|
152
134
|
- test/dummy/config.ru
|
153
|
-
- test/dummy/
|
135
|
+
- test/dummy/log/test.log
|
154
136
|
- test/dummy/public/404.html
|
155
137
|
- test/dummy/public/422.html
|
156
138
|
- test/dummy/public/500.html
|
157
139
|
- test/dummy/public/favicon.ico
|
158
140
|
- test/dummy/Rakefile
|
159
|
-
- test/
|
160
|
-
- test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
|
161
|
-
- test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
|
162
|
-
- test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
|
163
|
-
- test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
|
164
|
-
- test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
165
|
-
- test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
166
|
-
- test/include_tag_test.rb
|
141
|
+
- test/tag_test.rb
|
167
142
|
- test/test_helper.rb
|
@@ -1,43 +0,0 @@
|
|
1
|
-
module Analytics
|
2
|
-
module Rails
|
3
|
-
module ActionView
|
4
|
-
module Base
|
5
|
-
|
6
|
-
def google_analytics_include_tag(*args)
|
7
|
-
options = args.extract_options!
|
8
|
-
if ::Rails.env.production?
|
9
|
-
[:variables, :events].each do |name|
|
10
|
-
if options.has_key? name
|
11
|
-
options[name].map! do |values|
|
12
|
-
values.map(&:inspect).join(', ').gsub('"',"'")
|
13
|
-
end
|
14
|
-
else
|
15
|
-
options[name] = []
|
16
|
-
end
|
17
|
-
end
|
18
|
-
variables = options[:variables].map do |values|
|
19
|
-
"_gaq.push(['_setCustomVar', #{values}]);"
|
20
|
-
end
|
21
|
-
events = options[:events].map do |values|
|
22
|
-
"ga('send', 'event', #{values});"
|
23
|
-
end
|
24
|
-
script = <<-SCRIPT
|
25
|
-
var _gaq = _gaq || [];
|
26
|
-
_gaq.push(['_setAccount', '#{args.first}']);
|
27
|
-
#{variables.join("\n")}
|
28
|
-
_gaq.push(['_trackPageview']);
|
29
|
-
(function(){
|
30
|
-
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
31
|
-
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
32
|
-
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
33
|
-
})();
|
34
|
-
#{events.join("\n")}
|
35
|
-
SCRIPT
|
36
|
-
content_tag :script, script.html_safe, type: 'text/javascript'
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/test/dummy/README.rdoc
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
== README
|
2
|
-
|
3
|
-
This README would normally document whatever steps are necessary to get the
|
4
|
-
application up and running.
|
5
|
-
|
6
|
-
Things you may want to cover:
|
7
|
-
|
8
|
-
* Ruby version
|
9
|
-
|
10
|
-
* System dependencies
|
11
|
-
|
12
|
-
* Configuration
|
13
|
-
|
14
|
-
* Database creation
|
15
|
-
|
16
|
-
* Database initialization
|
17
|
-
|
18
|
-
* How to run the test suite
|
19
|
-
|
20
|
-
* Services (job queues, cache servers, search engines, etc.)
|
21
|
-
|
22
|
-
* Deployment instructions
|
23
|
-
|
24
|
-
* ...
|
25
|
-
|
26
|
-
|
27
|
-
Please feel free to use a different markup language if you do not plan to run
|
28
|
-
<tt>rake doc:app</tt>.
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# SQLite version 3.x
|
2
|
-
# gem install sqlite3
|
3
|
-
#
|
4
|
-
# Ensure the SQLite 3 gem is defined in your Gemfile
|
5
|
-
# gem 'sqlite3'
|
6
|
-
development:
|
7
|
-
adapter: sqlite3
|
8
|
-
database: db/development.sqlite3
|
9
|
-
pool: 5
|
10
|
-
timeout: 5000
|
11
|
-
|
12
|
-
# Warning: The database defined as "test" will be erased and
|
13
|
-
# re-generated from your development database when you run "rake".
|
14
|
-
# Do not set this db to the same as development or production.
|
15
|
-
test:
|
16
|
-
adapter: sqlite3
|
17
|
-
database: ":memory:"
|
18
|
-
pool: 5
|
19
|
-
timeout: 5000
|
20
|
-
|
21
|
-
production:
|
22
|
-
adapter: sqlite3
|
23
|
-
database: db/production.sqlite3
|
24
|
-
pool: 5
|
25
|
-
timeout: 5000
|