rack-tracker 1.11.2 → 1.12.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/.travis.yml +10 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile.rails-6.0 +6 -0
- data/README.md +12 -0
- data/lib/rack/tracker.rb +1 -0
- data/lib/rack/tracker/google_analytics/template/google_analytics.erb +2 -2
- data/lib/rack/tracker/heap/heap.rb +2 -0
- data/lib/rack/tracker/heap/template/heap.erb +4 -0
- data/lib/rack/tracker/version.rb +1 -1
- data/spec/handler/heap_spec.rb +10 -0
- data/spec/integration/heap_integration_spec.rb +17 -0
- data/spec/integration/rails_integration_spec.rb +16 -7
- data/spec/support/metal_controller.rb +4 -0
- metadata +10 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96cc84b108179e10df6c41c10fb536597f8ba93ac7106d38bbfe9b8d36e6da6e
|
4
|
+
data.tar.gz: dccdd57d1f3c8985ef500c45a6441b0821e7a1dc33dd232503bd1ca73d5ed1ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78b014112e736701afb694c07384cd368a37054c8d734a8b38d9bb9224a33d0b857e8596e486a9e06d8c0038a54e9917835e7e2ba64efc96ecb5f06a21bc7b30
|
7
|
+
data.tar.gz: 9d81d707139e7393409c15a2e1f9fe7289394988bf1804613550bab4a114d3c393e175c512062bca1b3816b97ad3aa4c913614fd51a27cbc736a57bd8517aa96
|
data/.travis.yml
CHANGED
@@ -6,8 +6,18 @@ rvm:
|
|
6
6
|
- 2.5.3
|
7
7
|
- 2.6.1
|
8
8
|
- jruby-9.1.10.0
|
9
|
+
- jruby-9.2.7.0
|
9
10
|
gemfile:
|
10
11
|
- Gemfile
|
11
12
|
- Gemfile.rails-3.2
|
12
13
|
- Gemfile.rails-4.2
|
13
14
|
- Gemfile.rails-5.2
|
15
|
+
- Gemfile.rails-6.0
|
16
|
+
matrix:
|
17
|
+
exclude:
|
18
|
+
- rvm: 2.3.8
|
19
|
+
gemfile: Gemfile.rails-6.0
|
20
|
+
- rvm: 2.4.5
|
21
|
+
gemfile: Gemfile.rails-6.0
|
22
|
+
- rvm: jruby-9.1.10.0
|
23
|
+
gemfile: Gemfile.rails-6.0
|
data/CHANGELOG.md
CHANGED
data/Gemfile.rails-6.0
ADDED
data/README.md
CHANGED
@@ -615,6 +615,18 @@ config.middleware.use(Rack::Tracker) do
|
|
615
615
|
end
|
616
616
|
```
|
617
617
|
|
618
|
+
### Heap
|
619
|
+
|
620
|
+
[Heap](https://heap.io/). Heap has Projects (e.g. "Main") which have multiple
|
621
|
+
Environments (e.g. "Production" or "Development"). `env_id` is therefore the numerical ID
|
622
|
+
that represents the Environment. See Settings -> Projects -> Environments in your dashboard.
|
623
|
+
|
624
|
+
```
|
625
|
+
config.middleware.use(Rack::Tracker) do
|
626
|
+
handler :heap, env_id: 'HEAP_ID'
|
627
|
+
end
|
628
|
+
```
|
629
|
+
|
618
630
|
### Custom Handlers
|
619
631
|
|
620
632
|
Tough we give you handlers for a few tracking services right out of the box, you might
|
data/lib/rack/tracker.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
<script type="text/javascript">
|
2
1
|
<% if tracker %>
|
2
|
+
<script type="text/javascript">
|
3
3
|
if(typeof ga === 'undefined') {
|
4
4
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
5
5
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
@@ -40,5 +40,5 @@
|
|
40
40
|
<% end %>
|
41
41
|
<% if tracker && options[:explicit_pageview] %>
|
42
42
|
ga('send', 'pageview', <%= pageview_url_script %>);
|
43
|
-
<% end %>
|
44
43
|
</script>
|
44
|
+
<% end %>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<script>
|
2
|
+
window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||"https:"===document.location.protocol,a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=(r?"https:":"http:")+"//cdn.heapanalytics.com/js/heap-"+e+".js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","resetIdentity","removeEventProperty","setEventProperties","track","unsetEventProperty"],c=0;c<p.length;c++)heap[p[c]]=o(p[c])};
|
3
|
+
heap.load("<%= options[:env_id] %>");
|
4
|
+
</script>
|
data/lib/rack/tracker/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'support/capybara_app_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Heap Integration" do
|
4
|
+
before do
|
5
|
+
setup_app(action: :heap) do |tracker|
|
6
|
+
tracker.handler :heap, { env_id: '12341234' }
|
7
|
+
end
|
8
|
+
|
9
|
+
visit '/'
|
10
|
+
end
|
11
|
+
|
12
|
+
subject { page }
|
13
|
+
|
14
|
+
it 'embeds the script with site_id' do
|
15
|
+
expect(page).to have_content('heap.load("12341234");')
|
16
|
+
end
|
17
|
+
end
|
@@ -1,10 +1,19 @@
|
|
1
1
|
require 'support/capybara_app_helper'
|
2
2
|
|
3
3
|
RSpec.describe "Rails Integration" do
|
4
|
+
let(:callable_skip_inject) do
|
5
|
+
lambda do |env|
|
6
|
+
# check for anything in the env hash to decide
|
7
|
+
# if you return the `tracker id` or `nil` to skip injection
|
8
|
+
nil
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
4
12
|
before do
|
5
13
|
setup_app(action: :index) do |tracker|
|
6
14
|
tracker.handler :track_all_the_things, { custom_key: 'SomeKey123' }
|
7
15
|
tracker.handler :another_handler, { custom_key: 'AnotherKey42' }
|
16
|
+
tracker.handler :google_analytics, { tracker: callable_skip_inject }
|
8
17
|
end
|
9
18
|
|
10
19
|
visit '/'
|
@@ -17,15 +26,15 @@ RSpec.describe "Rails Integration" do
|
|
17
26
|
<html>
|
18
27
|
<head>
|
19
28
|
<title>Metal Layout</title>
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
29
|
+
<script type="text/javascript">
|
30
|
+
myAwesomeFunction("tracks", "like", "no-one-else", "SomeKey123");
|
31
|
+
</script>
|
32
|
+
</head>
|
24
33
|
<body class="do-we-support-attributes-on-the-body-tag">
|
25
34
|
<h1>welcome to metal#index</h1>
|
26
|
-
|
27
|
-
|
28
|
-
|
35
|
+
<script type="text/javascript">
|
36
|
+
anotherFunction("tracks-event-from-down-under", "AnotherKey42");
|
37
|
+
</script>
|
29
38
|
</body>
|
30
39
|
</html>
|
31
40
|
HTML
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-11-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
@@ -154,6 +154,7 @@ files:
|
|
154
154
|
- Gemfile.rails-3.2
|
155
155
|
- Gemfile.rails-4.2
|
156
156
|
- Gemfile.rails-5.2
|
157
|
+
- Gemfile.rails-6.0
|
157
158
|
- LICENSE.txt
|
158
159
|
- README.md
|
159
160
|
- Rakefile
|
@@ -184,6 +185,8 @@ files:
|
|
184
185
|
- lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb
|
185
186
|
- lib/rack/tracker/handler.rb
|
186
187
|
- lib/rack/tracker/handler_delegator.rb
|
188
|
+
- lib/rack/tracker/heap/heap.rb
|
189
|
+
- lib/rack/tracker/heap/template/heap.erb
|
187
190
|
- lib/rack/tracker/hotjar/hotjar.rb
|
188
191
|
- lib/rack/tracker/hotjar/template/hotjar.erb
|
189
192
|
- lib/rack/tracker/hubspot/hubspot.rb
|
@@ -214,6 +217,7 @@ files:
|
|
214
217
|
- spec/handler/google_global_spec.rb
|
215
218
|
- spec/handler/google_tag_manager_spec.rb
|
216
219
|
- spec/handler/handler_spec.rb
|
220
|
+
- spec/handler/heap_spec.rb
|
217
221
|
- spec/handler/hotjar_spec.rb
|
218
222
|
- spec/handler/hubspot_spec.rb
|
219
223
|
- spec/handler/vwo_spec.rb
|
@@ -228,6 +232,7 @@ files:
|
|
228
232
|
- spec/integration/google_analytics_integration_spec.rb
|
229
233
|
- spec/integration/google_global_integration_spec.rb
|
230
234
|
- spec/integration/google_tag_manager_integration_spec.rb
|
235
|
+
- spec/integration/heap_integration_spec.rb
|
231
236
|
- spec/integration/hotjar_integration_spec.rb
|
232
237
|
- spec/integration/hubspot_integration_spec.rb
|
233
238
|
- spec/integration/rails_integration_spec.rb
|
@@ -261,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
261
266
|
- !ruby/object:Gem::Version
|
262
267
|
version: '0'
|
263
268
|
requirements: []
|
264
|
-
rubygems_version: 3.0.
|
269
|
+
rubygems_version: 3.0.6
|
265
270
|
signing_key:
|
266
271
|
specification_version: 4
|
267
272
|
summary: Tracking made easy
|
@@ -284,6 +289,7 @@ test_files:
|
|
284
289
|
- spec/handler/google_global_spec.rb
|
285
290
|
- spec/handler/google_tag_manager_spec.rb
|
286
291
|
- spec/handler/handler_spec.rb
|
292
|
+
- spec/handler/heap_spec.rb
|
287
293
|
- spec/handler/hotjar_spec.rb
|
288
294
|
- spec/handler/hubspot_spec.rb
|
289
295
|
- spec/handler/vwo_spec.rb
|
@@ -298,6 +304,7 @@ test_files:
|
|
298
304
|
- spec/integration/google_analytics_integration_spec.rb
|
299
305
|
- spec/integration/google_global_integration_spec.rb
|
300
306
|
- spec/integration/google_tag_manager_integration_spec.rb
|
307
|
+
- spec/integration/heap_integration_spec.rb
|
301
308
|
- spec/integration/hotjar_integration_spec.rb
|
302
309
|
- spec/integration/hubspot_integration_spec.rb
|
303
310
|
- spec/integration/rails_integration_spec.rb
|