ahoy_matey 0.3.1 → 0.3.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/app/controllers/ahoy/visits_controller.rb +1 -19
- data/lib/ahoy/tracker.rb +44 -1
- data/lib/ahoy/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2226bcc4712d1729f93cc68a4a01ac03eef2ee0a
|
4
|
+
data.tar.gz: fc0f05b5df70d3fddbb8f888bc7a136146b8cf47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1d5a9cff762a21c7690eabea4100b842fa419fb1b0094117e4d0f34500c131a9738a8c83f4d52ec397f8c951bbd7a99f55b6a837acc99f227d2457d528495a8
|
7
|
+
data.tar.gz: 047ed1ac5af0529aa172640629ca4101dff2659cc21452b4adb4f4d5219b684eae535d40f2d55b56ff9d0a65d440853bcf7bdf750da054afe2c4c004170fe2dd
|
data/CHANGELOG.md
CHANGED
@@ -2,25 +2,7 @@ module Ahoy
|
|
2
2
|
class VisitsController < BaseController
|
3
3
|
|
4
4
|
def create
|
5
|
-
|
6
|
-
visitor_token = params[:visitor_token] || Ahoy.generate_id
|
7
|
-
|
8
|
-
visit =
|
9
|
-
Ahoy.visit_model.new do |v|
|
10
|
-
v.visit_token = visit_token
|
11
|
-
v.visitor_token = visitor_token
|
12
|
-
v.ip = request.remote_ip if v.respond_to?(:ip=)
|
13
|
-
v.user_agent = request.user_agent if v.respond_to?(:user_agent=)
|
14
|
-
v.referrer = params[:referrer] if v.respond_to?(:referrer=)
|
15
|
-
v.landing_page = params[:landing_page] if v.respond_to?(:landing_page=)
|
16
|
-
v.user = Ahoy.fetch_user(self) if v.respond_to?(:user=)
|
17
|
-
v.platform = params[:platform] if v.respond_to?(:platform=)
|
18
|
-
v.app_version = params[:app_version] if v.respond_to?(:app_version=)
|
19
|
-
v.os_version = params[:os_version] if v.respond_to?(:os_version=)
|
20
|
-
end
|
21
|
-
|
22
|
-
visit.save!
|
23
|
-
render json: {visit_token: visit.visit_token, visitor_token: visit.visitor_token}
|
5
|
+
render json: ahoy.track_visit
|
24
6
|
end
|
25
7
|
|
26
8
|
end
|
data/lib/ahoy/tracker.rb
CHANGED
@@ -7,7 +7,7 @@ module Ahoy
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def track(name, properties = {}, options = {})
|
10
|
-
if
|
10
|
+
if track?
|
11
11
|
# publish to each subscriber
|
12
12
|
options = options.dup
|
13
13
|
if @controller
|
@@ -39,8 +39,43 @@ module Ahoy
|
|
39
39
|
true
|
40
40
|
end
|
41
41
|
|
42
|
+
# not a public API - do not use
|
43
|
+
def track_visit
|
44
|
+
visit_token = params[:visit_token] || Ahoy.generate_id
|
45
|
+
visitor_token = params[:visitor_token] || Ahoy.generate_id
|
46
|
+
|
47
|
+
if track?
|
48
|
+
# TODO move to subscriber
|
49
|
+
visit =
|
50
|
+
Ahoy.visit_model.new do |v|
|
51
|
+
v.visit_token = visit_token
|
52
|
+
v.visitor_token = visitor_token
|
53
|
+
v.ip = request.remote_ip if v.respond_to?(:ip=)
|
54
|
+
v.user_agent = request.user_agent if v.respond_to?(:user_agent=)
|
55
|
+
v.referrer = params[:referrer] if v.respond_to?(:referrer=)
|
56
|
+
v.landing_page = params[:landing_page] if v.respond_to?(:landing_page=)
|
57
|
+
v.user = Ahoy.fetch_user(@controller) if v.respond_to?(:user=)
|
58
|
+
v.platform = params[:platform] if v.respond_to?(:platform=)
|
59
|
+
v.app_version = params[:app_version] if v.respond_to?(:app_version=)
|
60
|
+
v.os_version = params[:os_version] if v.respond_to?(:os_version=)
|
61
|
+
end
|
62
|
+
|
63
|
+
begin
|
64
|
+
visit.save!
|
65
|
+
rescue ActiveRecord::RecordNotUnique
|
66
|
+
# do nothing
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
{visit_token: visit_token, visitor_token: visitor_token}
|
71
|
+
end
|
72
|
+
|
42
73
|
protected
|
43
74
|
|
75
|
+
def track?
|
76
|
+
(Ahoy.track_bots || !bot?) && !exclude?
|
77
|
+
end
|
78
|
+
|
44
79
|
def bot?
|
45
80
|
@bot ||= Browser.new(ua: @request.user_agent).bot?
|
46
81
|
end
|
@@ -57,5 +92,13 @@ module Ahoy
|
|
57
92
|
end
|
58
93
|
end
|
59
94
|
|
95
|
+
def params
|
96
|
+
@controller.params
|
97
|
+
end
|
98
|
+
|
99
|
+
def request
|
100
|
+
@request
|
101
|
+
end
|
102
|
+
|
60
103
|
end
|
61
104
|
end
|
data/lib/ahoy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ahoy_matey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|