ahoy_matey 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|