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