test_track_rails_client 0.9.19 → 0.9.20
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
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjMxNjA4MWVlMjgwYjM3Yjg2MjlmMGRhNDU5MTRjZmYzZDEyMGZhYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzM5NTQ3YTEwODQ4MDJiMjczYWI1ZDI5MmYwM2ZkNzVjMWYzOWFhNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTM5NzZhZjA2YzZjYjI1MzdiYWMxYTEzM2RkZTBlNzg0NjYxNTcyYjU1M2Ey
|
10
|
+
N2JmNzNlYTQxYmRlMTA2NzAzMTJkNWI0NmZlMTQ1YTlhNWExZDdlYzJjN2Uz
|
11
|
+
OTEzMjljMDQ0NGI2NDg3NTNkYTc3NWU1MDVmYTBlMDcwM2ViYjc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWU4ZDZjNjg2ODUyNjA5ODc1OGIzODA5NzA3NzAzYzJjNjBhMjQxMTA2ZDcw
|
14
|
+
Mjg0ODI2ODE2MDBlOGQ0ZjA4ZjEwZDI2ZjJlNjU5Yzc2N2QwM2VhZjFkOWFi
|
15
|
+
OGU3N2UwZGE3ZDMwYTU1YzJmNjQzMmFiMDY4YmE2Mjg4MjYzZmU=
|
@@ -6,11 +6,7 @@ class TestTrack::Fake::SplitRegistry
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def to_h
|
9
|
-
|
10
|
-
test_track_schema_yml[:splits]
|
11
|
-
else
|
12
|
-
{}
|
13
|
-
end
|
9
|
+
@to_h ||= splits_with_deterministic_weights
|
14
10
|
end
|
15
11
|
|
16
12
|
def splits
|
@@ -21,6 +17,14 @@ class TestTrack::Fake::SplitRegistry
|
|
21
17
|
|
22
18
|
private
|
23
19
|
|
20
|
+
def split_hash
|
21
|
+
if test_track_schema_yml.present?
|
22
|
+
test_track_schema_yml[:splits]
|
23
|
+
else
|
24
|
+
{}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
24
28
|
def test_track_schema_yml
|
25
29
|
unless instance_variable_defined?(:@test_track_schema_yml)
|
26
30
|
@test_track_schema_yml = _test_track_schema_yml
|
@@ -29,8 +33,25 @@ class TestTrack::Fake::SplitRegistry
|
|
29
33
|
end
|
30
34
|
|
31
35
|
def _test_track_schema_yml
|
32
|
-
YAML.load_file(
|
36
|
+
YAML.load_file(test_track_schema_yml_path).with_indifferent_access
|
33
37
|
rescue
|
34
38
|
nil
|
35
39
|
end
|
40
|
+
|
41
|
+
def test_track_schema_yml_path
|
42
|
+
ENV["TEST_TRACK_SCHEMA_FILE_PATH"] || "#{Rails.root}/db/test_track_schema.yml"
|
43
|
+
end
|
44
|
+
|
45
|
+
def splits_with_deterministic_weights
|
46
|
+
split_hash.each_with_object({}) do |(split_name, weighting_registry), split_registry|
|
47
|
+
default_variant = weighting_registry.keys.sort.first
|
48
|
+
|
49
|
+
adjusted_weights = { default_variant => 100 }
|
50
|
+
weighting_registry.except(default_variant).keys.each do |variant|
|
51
|
+
adjusted_weights[variant] = 0
|
52
|
+
end
|
53
|
+
|
54
|
+
split_registry[split_name] = adjusted_weights
|
55
|
+
end
|
56
|
+
end
|
36
57
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'digest'
|
2
|
-
|
3
1
|
class TestTrack::Fake::Visitor
|
4
2
|
attr_reader :id
|
5
3
|
|
@@ -21,21 +19,16 @@ class TestTrack::Fake::Visitor
|
|
21
19
|
@assignments ||= _assignments
|
22
20
|
end
|
23
21
|
|
22
|
+
def split_registry
|
23
|
+
TestTrack::Fake::SplitRegistry.instance.to_h
|
24
|
+
end
|
25
|
+
|
24
26
|
private
|
25
27
|
|
26
28
|
def _assignments
|
27
|
-
|
28
|
-
|
29
|
-
variant
|
30
|
-
Assignment.new(split.name, variant, false, "the_context")
|
29
|
+
split_registry.keys.map do |split_name|
|
30
|
+
variant = TestTrack::VariantCalculator.new(visitor: self, split_name: split_name).variant
|
31
|
+
Assignment.new(split_name, variant, false, "the_context")
|
31
32
|
end
|
32
33
|
end
|
33
|
-
|
34
|
-
def hash_fixnum(split_name)
|
35
|
-
split_visitor_hash(split_name).slice(0, 8).to_i(16)
|
36
|
-
end
|
37
|
-
|
38
|
-
def split_visitor_hash(split_name)
|
39
|
-
Digest::MD5.new.update(split_name.to_s + id.to_s).hexdigest
|
40
|
-
end
|
41
34
|
end
|
@@ -1,13 +1,12 @@
|
|
1
1
|
module TestTrackRailsClient::AssignmentHelper
|
2
|
-
def stub_test_track_assignments(assignment_registry) # rubocop:disable Metrics/AbcSize
|
2
|
+
def stub_test_track_assignments(assignment_registry) # rubocop:disable Metrics/AbcSize
|
3
3
|
raise "Cannot stub test track assignments when TestTrack is enabled" if TestTrack.enabled?
|
4
4
|
|
5
|
-
split_registry =
|
5
|
+
split_registry = TestTrack::Fake::SplitRegistry.instance.to_h.dup
|
6
6
|
assignments = []
|
7
7
|
|
8
8
|
assignment_registry.each do |split_name, variant|
|
9
|
-
|
10
|
-
split_registry[split_name] = { variant => 100 }
|
9
|
+
split_registry[split_name] = { variant => 100 } unless split_registry[split_name]
|
11
10
|
assignments << { split_name: split_name.to_s, variant: variant.to_s, unsynced: false }
|
12
11
|
end
|
13
12
|
|
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: 0.9.
|
4
|
+
version: 0.9.20
|
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-03-04 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rails
|