test_track_rails_client 1.0.0 → 1.1.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 +8 -8
- data/app/models/test_track/session.rb +30 -1
- data/app/models/test_track/visitor.rb +5 -0
- data/lib/test_track_rails_client/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWRlMmZlOWFkYmQwZmJiMWE5YzAyZDdmYjBkOTIwYTRlZDM2MmZjYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OGZmNTJjMGZiYjI2N2YyMzAxNGVhNzg2ZDk0MTRlYzM2YzdkMDA5MA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NWI4NGRhMzI4OTcwMzBlNWI1NmM0MDJhOWE5YWEzNzk5ODI3ZjM3OGFhNzZj
|
10
|
+
YzFkMTlhZjU5YjA3YzgxMjQ1ODgwODUyNWY3OTEwOGVhOTIyMjJkNjZmNzAx
|
11
|
+
OGQ0ZWIzZjZhN2MwOGNiYTAxODNhYjk3MWQwOGIwZDEzN2YxNjE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGM5NzAyNWMyYzc1OWY0NTYzZTE5YjcwYTdkZTk5NDhmMGQyMjA0NWYzYzE1
|
14
|
+
ZGVjZWQzYWVlODgwODlhODkxZGI1MmZmMjg0NThkZTU0YTY0NGYzMmVkZGE4
|
15
|
+
OTFjMTUyMDM5MGM1YjQzODAwYzIxZGUwMzliZDMwZGYzNTIwMTI=
|
@@ -12,6 +12,7 @@ class TestTrack::Session
|
|
12
12
|
yield
|
13
13
|
ensure
|
14
14
|
manage_cookies!
|
15
|
+
manage_response_headers!
|
15
16
|
notify_unsynced_assignments! if sync_assignments?
|
16
17
|
create_alias! if signed_up?
|
17
18
|
end
|
@@ -48,7 +49,11 @@ class TestTrack::Session
|
|
48
49
|
alias signed_up? signed_up
|
49
50
|
|
50
51
|
def visitor
|
51
|
-
@visitor ||= TestTrack::Visitor.new(id:
|
52
|
+
@visitor ||= TestTrack::Visitor.new(id: visitor_id)
|
53
|
+
end
|
54
|
+
|
55
|
+
def visitor_id
|
56
|
+
cookies[visitor_cookie_name] || request_headers[visitor_request_header_name]
|
52
57
|
end
|
53
58
|
|
54
59
|
def set_cookie(name, value)
|
@@ -100,10 +105,26 @@ class TestTrack::Session
|
|
100
105
|
controller.request
|
101
106
|
end
|
102
107
|
|
108
|
+
def response
|
109
|
+
controller.response
|
110
|
+
end
|
111
|
+
|
103
112
|
def cookies
|
104
113
|
controller.send(:cookies)
|
105
114
|
end
|
106
115
|
|
116
|
+
def request_headers
|
117
|
+
request.headers
|
118
|
+
end
|
119
|
+
|
120
|
+
def response_headers
|
121
|
+
response.headers
|
122
|
+
end
|
123
|
+
|
124
|
+
def manage_response_headers!
|
125
|
+
response_headers[visitor_response_header_name] = visitor.id if visitor.id_overridden_by_existing_visitor?
|
126
|
+
end
|
127
|
+
|
107
128
|
def notify_unsynced_assignments!
|
108
129
|
payload = {
|
109
130
|
mixpanel_distinct_id: mixpanel_distinct_id,
|
@@ -170,6 +191,14 @@ class TestTrack::Session
|
|
170
191
|
ENV['TEST_TRACK_VISITOR_COOKIE_NAME'] || 'tt_visitor_id'
|
171
192
|
end
|
172
193
|
|
194
|
+
def visitor_request_header_name
|
195
|
+
ENV['TEST_TRACK_VISITOR_REQUEST_HEADER_NAME'] || 'X-TT-Visitor-ID'
|
196
|
+
end
|
197
|
+
|
198
|
+
def visitor_response_header_name
|
199
|
+
ENV['TEST_TRACK_VISITOR_RESPONSE_HEADER_NAME'] || 'X-Set-TT-Visitor-ID'
|
200
|
+
end
|
201
|
+
|
173
202
|
def fully_qualified_cookie_domain_enabled?
|
174
203
|
ENV['TEST_TRACK_FULLY_QUALIFIED_COOKIE_DOMAIN_ENABLED'] == '1'
|
175
204
|
end
|
@@ -98,6 +98,10 @@ class TestTrack::Visitor
|
|
98
98
|
!offline? && @remote_visitor.present?
|
99
99
|
end
|
100
100
|
|
101
|
+
def id_overridden_by_existing_visitor?
|
102
|
+
@id_overridden_by_existing_visitor || false
|
103
|
+
end
|
104
|
+
|
101
105
|
private
|
102
106
|
|
103
107
|
def assignments
|
@@ -113,6 +117,7 @@ class TestTrack::Visitor
|
|
113
117
|
end
|
114
118
|
|
115
119
|
def merge!(other)
|
120
|
+
@id_overridden_by_existing_visitor = id != other.id
|
116
121
|
@id = other.id
|
117
122
|
@assignment_registry = assignment_registry.merge(other.assignment_registry)
|
118
123
|
@unsynced_assignments = nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_track_rails_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan O'Neill
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2017-
|
16
|
+
date: 2017-05-30 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rails
|
@@ -419,8 +419,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
419
419
|
requirements:
|
420
420
|
- - ! '>='
|
421
421
|
- !ruby/object:Gem::Version
|
422
|
-
version:
|
423
|
-
MS45LjM=
|
422
|
+
version: 1.9.3
|
424
423
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
425
424
|
requirements:
|
426
425
|
- - ! '>='
|