test_track_rails_client 4.0.0.alpha8 → 4.0.0.alpha9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/test_track/analytics_event.rb +3 -4
- data/app/models/test_track/assignment.rb +0 -4
- data/app/models/test_track/fake/visitor.rb +2 -2
- data/app/models/test_track/notify_assignment_job.rb +1 -1
- data/app/models/test_track/offline_session.rb +1 -23
- data/app/models/test_track/remote/assignment.rb +6 -2
- data/lib/test_track_rails_client/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: 629da11fcbfee5696bb015df4e2e14258cee29c3
|
4
|
+
data.tar.gz: 8ae8b3bf5ea58b8cbbe858f4b6dff750474282b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dde230b69d332342cfde930cef086e44bc33e3d69363e93884f464d99dbdcf74f8ad292d757a48973b31ad4a35f94bbd5f1f4a07b75c216a6ecd1fdf9bd9e77
|
7
|
+
data.tar.gz: acbc533c47b4ed7ab1d170a67c37f31852a161dbaf558bed87c9a1a786914a942cde94843326f3e9c2fb20a267d7bf921242053a308007ed15b030041434f672
|
@@ -1,10 +1,9 @@
|
|
1
1
|
module TestTrack
|
2
2
|
class AnalyticsEvent
|
3
|
-
attr_reader :assignment
|
3
|
+
attr_reader :visitor_id, :assignment
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
def initialize(assignment)
|
5
|
+
def initialize(visitor_id, assignment)
|
6
|
+
@visitor_id = visitor_id
|
8
7
|
@assignment = assignment
|
9
8
|
end
|
10
9
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class TestTrack::Fake::Visitor
|
2
2
|
attr_reader :id
|
3
3
|
|
4
|
-
Assignment = Struct.new(:split_name, :variant, :unsynced, :context
|
4
|
+
Assignment = Struct.new(:split_name, :variant, :unsynced, :context)
|
5
5
|
|
6
6
|
def self.instance
|
7
7
|
@instance ||= new(TestTrack::FakeServer.seed)
|
@@ -28,7 +28,7 @@ class TestTrack::Fake::Visitor
|
|
28
28
|
def _assignments
|
29
29
|
split_registry.keys.map do |split_name|
|
30
30
|
variant = TestTrack::VariantCalculator.new(visitor: self, split_name: split_name).variant
|
31
|
-
Assignment.new(split_name, variant, false, "the_context"
|
31
|
+
Assignment.new(split_name, variant, false, "the_context")
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -27,7 +27,7 @@ class TestTrack::NotifyAssignmentJob
|
|
27
27
|
|
28
28
|
def track
|
29
29
|
return "failure" unless TestTrack.enabled?
|
30
|
-
result = TestTrack.analytics.track(TestTrack::AnalyticsEvent.new(assignment))
|
30
|
+
result = TestTrack.analytics.track(TestTrack::AnalyticsEvent.new(visitor_id, assignment))
|
31
31
|
result ? "success" : "failure"
|
32
32
|
end
|
33
33
|
end
|
@@ -1,14 +1,4 @@
|
|
1
1
|
class TestTrack::OfflineSession
|
2
|
-
AnalyticsAssignment = Struct.new(:visitor_id, :split_name, :variant, :context, :unsynced) do
|
3
|
-
def unsynced?
|
4
|
-
unsynced
|
5
|
-
end
|
6
|
-
|
7
|
-
def feature_gate?
|
8
|
-
split_name.end_with?('_enabled')
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
2
|
def initialize(remote_visitor)
|
13
3
|
@remote_visitor = remote_visitor
|
14
4
|
end
|
@@ -40,22 +30,10 @@ class TestTrack::OfflineSession
|
|
40
30
|
def visitor
|
41
31
|
@visitor ||= TestTrack::Visitor.new(
|
42
32
|
id: remote_visitor.id,
|
43
|
-
assignments:
|
33
|
+
assignments: remote_visitor.assignments
|
44
34
|
)
|
45
35
|
end
|
46
36
|
|
47
|
-
def analytics_assignments
|
48
|
-
remote_visitor.assignments.map do |remote_assignment|
|
49
|
-
AnalyticsAssignment.new(
|
50
|
-
remote_visitor.id,
|
51
|
-
remote_assignment.split_name,
|
52
|
-
remote_assignment.variant,
|
53
|
-
remote_assignment.context,
|
54
|
-
remote_assignment.unsynced
|
55
|
-
)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
37
|
def manage
|
60
38
|
yield TestTrack::VisitorDSL.new(visitor)
|
61
39
|
ensure
|
@@ -1,14 +1,18 @@
|
|
1
1
|
class TestTrack::Remote::Assignment
|
2
2
|
include TestTrack::RemoteModel
|
3
3
|
|
4
|
-
attributes :
|
4
|
+
attributes :split_name, :variant, :context, :unsynced
|
5
5
|
|
6
|
-
validates :
|
6
|
+
validates :split_name, :variant, :mixpanel_result, presence: true
|
7
7
|
|
8
8
|
def unsynced?
|
9
9
|
unsynced || variant_changed?
|
10
10
|
end
|
11
11
|
|
12
|
+
def feature_gate?
|
13
|
+
split_name.end_with?('_enabled')
|
14
|
+
end
|
15
|
+
|
12
16
|
def self.fake_instance_attributes(id)
|
13
17
|
{
|
14
18
|
split_name: "split_#{id}",
|
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: 4.0.0.
|
4
|
+
version: 4.0.0.alpha9
|
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: 2018-05-
|
16
|
+
date: 2018-05-25 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: airbrake
|