determinator 0.6.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/determinator/control.rb +2 -0
- data/lib/determinator/feature.rb +3 -2
- data/lib/determinator/retrieve/routemaster.rb +2 -1
- data/lib/determinator/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 066363028ac1046f4d723b50c600c4f32482573e
|
4
|
+
data.tar.gz: 9335a928b7c7ff5bc090fea102eaee6de44b335a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2160f41cf9f742948933bfae8fca2f64e6c051e7bfc4320f04148e47fbc78f1bf9b55a258fb8cd16e640a05197fc8c866881597a682041e97e0d9d526c0ccee
|
7
|
+
data.tar.gz: fb1501b19164f5a70260930c32828a45ba31f39c6610c2cc4c792e309e53ed6e735dd776fbcd7b8bfbd74b34410d83c55d061a6a08fd75721d9e7f7aa43892e5
|
data/lib/determinator/control.rb
CHANGED
@@ -103,6 +103,8 @@ module Determinator
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def variant_for(feature, indicator)
|
106
|
+
return feature.winning_variant if feature.winning_variant
|
107
|
+
|
106
108
|
# Scale up the weights so the variants fit within the possible space for the variant indicator
|
107
109
|
variant_weight_total = feature.variants.values.reduce(:+)
|
108
110
|
scale_factor = 65_535 / variant_weight_total.to_f
|
data/lib/determinator/feature.rb
CHANGED
@@ -3,15 +3,16 @@ module Determinator
|
|
3
3
|
#
|
4
4
|
# @attr_reader [nil,Hash<String,Integer>] variants The variants for this experiment, with the name of the variant as the key and the weight as the value. Will be nil for non-experiments.
|
5
5
|
class Feature
|
6
|
-
attr_reader :name, :identifier, :bucket_type, :variants, :target_groups, :active
|
6
|
+
attr_reader :name, :identifier, :bucket_type, :variants, :target_groups, :active, :winning_variant
|
7
7
|
|
8
8
|
BUCKET_TYPES = %i(id guid fallback)
|
9
9
|
|
10
|
-
def initialize(name:, identifier:, bucket_type:, target_groups:, variants: {}, overrides: {}, active: false)
|
10
|
+
def initialize(name:, identifier:, bucket_type:, target_groups:, variants: {}, overrides: {}, active: false, winning_variant: nil)
|
11
11
|
@name = name.to_s
|
12
12
|
@identifier = identifier.to_s
|
13
13
|
@variants = variants
|
14
14
|
@target_groups = target_groups
|
15
|
+
@winning_variant = winning_variant
|
15
16
|
@active = active
|
16
17
|
|
17
18
|
@bucket_type = bucket_type.to_sym
|
@@ -53,7 +53,8 @@ module Determinator
|
|
53
53
|
variants: obj.body.variants.to_h,
|
54
54
|
overrides: obj.body.overrides.each_with_object({}) { |override, hash|
|
55
55
|
hash[override.user_id] = override.variant
|
56
|
-
}
|
56
|
+
},
|
57
|
+
winning_variant: obj.body.winning_variant,
|
57
58
|
)
|
58
59
|
rescue ::Routemaster::Errors::ResourceNotFound
|
59
60
|
nil
|
data/lib/determinator/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: determinator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Hastings-Spital
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: routemaster-drain
|
@@ -202,8 +202,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
202
|
version: '0'
|
203
203
|
requirements: []
|
204
204
|
rubyforge_project:
|
205
|
-
rubygems_version: 2.
|
205
|
+
rubygems_version: 2.5.1
|
206
206
|
signing_key:
|
207
207
|
specification_version: 4
|
208
208
|
summary: Determine which experiments and features a specific actor should see.
|
209
209
|
test_files: []
|
210
|
+
has_rdoc:
|