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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9db513e48eea03c383990fb228564e252bebc5b
4
- data.tar.gz: a05f03369e5777866a376d0e9c62989f74dfb4c0
3
+ metadata.gz: 2226bcc4712d1729f93cc68a4a01ac03eef2ee0a
4
+ data.tar.gz: fc0f05b5df70d3fddbb8f888bc7a136146b8cf47
5
5
  SHA512:
6
- metadata.gz: 9cc1490028f6f3ab3565b8214ab67b29b35d50feed74c7a2ba171de1a5c765d5be3a1c1708fa14db440a350a429fa49b18e63119b4d3a6472866cadfc02e6eda
7
- data.tar.gz: 693ce18cd49030035611bea317a931011c9d2ffd01c2ef5d77769b040bc88a1ebe06364ed2b864a21513c276aa2db8dad95e1e27d2d610c7ae44c3138d02e9eb
6
+ metadata.gz: f1d5a9cff762a21c7690eabea4100b842fa419fb1b0094117e4d0f34500c131a9738a8c83f4d52ec397f8c951bbd7a99f55b6a837acc99f227d2457d528495a8
7
+ data.tar.gz: 047ed1ac5af0529aa172640629ca4101dff2659cc21452b4adb4f4d5219b684eae535d40f2d55b56ff9d0a65d440853bcf7bdf750da054afe2c4c004170fe2dd
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.3.2
2
+
3
+ - Fixed bot exclusion for visits
4
+ - Fixed user method
5
+
1
6
  ## 0.3.1
2
7
 
3
8
  - Fixed visitor cookies when set on server
@@ -2,25 +2,7 @@ module Ahoy
2
2
  class VisitsController < BaseController
3
3
 
4
4
  def create
5
- visit_token = params[:visit_token] || Ahoy.generate_id
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 (Ahoy.track_bots or !bot?) and !exclude?
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
@@ -1,3 +1,3 @@
1
1
  module Ahoy
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
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.1
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-12 00:00:00.000000000 Z
11
+ date: 2014-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable