trailguide 0.1.14 → 0.1.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trail_guide/experiments/base.rb +7 -0
- data/lib/trail_guide/experiments/config.rb +15 -10
- data/lib/trail_guide/participant.rb +5 -0
- data/lib/trail_guide/version.rb +1 -1
- data/lib/trailguide.rb +12 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f3fe6f7f5a63ba2a075cb5ce550410ab6daed98a35ee565468bd45205ea784b
|
4
|
+
data.tar.gz: fd1fe329b9c64e4a1da9acaeb47b5601a76311123104d1bd9b4e8dec21076c0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd34a9c7628dcb95be218548167eac9fc59e4188ad90b3c528f0cab28bc87b08019736c87d210760b1a47d57344691c3a06561e3a8606030e82c3c29ddb15214
|
7
|
+
data.tar.gz: fc2afd4f9335ce021eac70b65546a99f1f954928ab2cd8c6e3c442fb221e6e41c640ea2563873d640cb268b95a2de442b2f488bedb1608a8f5ceb98022f6b321
|
@@ -182,6 +182,10 @@ module TrailGuide
|
|
182
182
|
participant.participating!(variant) unless override.present? && !configuration.store_override
|
183
183
|
run_callbacks(:on_use, variant, metadata)
|
184
184
|
variant
|
185
|
+
rescue Errno::ECONNREFUSED, Redis::BaseError, SocketError => e
|
186
|
+
run_callbacks(:on_redis_failover, e)
|
187
|
+
return variants.find { |var| var == override } if override.present?
|
188
|
+
return control
|
185
189
|
end
|
186
190
|
|
187
191
|
def choose_variant!(override: nil, excluded: false, metadata: nil)
|
@@ -232,6 +236,9 @@ module TrailGuide
|
|
232
236
|
variant.increment_conversion!(checkpoint)
|
233
237
|
run_callbacks(:on_convert, variant, checkpoint, metadata)
|
234
238
|
variant
|
239
|
+
rescue Errno::ECONNREFUSED, Redis::BaseError, SocketError => e
|
240
|
+
run_callbacks(:on_redis_failover, e)
|
241
|
+
return false
|
235
242
|
end
|
236
243
|
|
237
244
|
def participating?
|
@@ -20,16 +20,17 @@ module TrailGuide
|
|
20
20
|
def self.callbacks_config
|
21
21
|
{
|
22
22
|
callbacks: {
|
23
|
-
on_choose:
|
24
|
-
on_use:
|
25
|
-
on_convert:
|
26
|
-
on_start:
|
27
|
-
on_stop:
|
28
|
-
on_resume:
|
29
|
-
on_winner:
|
30
|
-
on_reset:
|
31
|
-
on_delete:
|
32
|
-
|
23
|
+
on_choose: [TrailGuide.configuration.on_experiment_choose].flatten.compact,
|
24
|
+
on_use: [TrailGuide.configuration.on_experiment_use].flatten.compact,
|
25
|
+
on_convert: [TrailGuide.configuration.on_experiment_convert].flatten.compact,
|
26
|
+
on_start: [TrailGuide.configuration.on_experiment_start].flatten.compact,
|
27
|
+
on_stop: [TrailGuide.configuration.on_experiment_stop].flatten.compact,
|
28
|
+
on_resume: [TrailGuide.configuration.on_experiment_resume].flatten.compact,
|
29
|
+
on_winner: [TrailGuide.configuration.on_experiment_winner].flatten.compact,
|
30
|
+
on_reset: [TrailGuide.configuration.on_experiment_reset].flatten.compact,
|
31
|
+
on_delete: [TrailGuide.configuration.on_experiment_delete].flatten.compact,
|
32
|
+
on_redis_failover: [TrailGuide.configuration.on_redis_failover].flatten.compact,
|
33
|
+
return_winner: [TrailGuide.configuration.return_experiment_winner].flatten.compact,
|
33
34
|
}
|
34
35
|
}
|
35
36
|
end
|
@@ -150,6 +151,10 @@ module TrailGuide
|
|
150
151
|
callbacks[:on_delete] << (meth || block)
|
151
152
|
end
|
152
153
|
|
154
|
+
def on_redis_failover(meth=nil, &block)
|
155
|
+
callbacks[:on_redis_failover] << (meth || block)
|
156
|
+
end
|
157
|
+
|
153
158
|
def return_winner(meth=nil, &block)
|
154
159
|
callbacks[:return_winner] << (meth || block)
|
155
160
|
end
|
@@ -26,6 +26,11 @@ module TrailGuide
|
|
26
26
|
config_adapter = config_adapter.constantize if config_adapter.is_a?(String)
|
27
27
|
end
|
28
28
|
config_adapter.new(context)
|
29
|
+
rescue => e
|
30
|
+
[TrailGuide.configuration.on_adapter_failover].flatten.compact.each do |callback|
|
31
|
+
callback.call(config_adapter, e)
|
32
|
+
end
|
33
|
+
TrailGuide::Adapters::Participants::Anonymous.new(context)
|
29
34
|
end
|
30
35
|
end
|
31
36
|
|
data/lib/trail_guide/version.rb
CHANGED
data/lib/trailguide.rb
CHANGED
@@ -29,16 +29,19 @@ module TrailGuide
|
|
29
29
|
config.allow_multiple_conversions = false
|
30
30
|
config.allow_multiple_goals = false
|
31
31
|
|
32
|
-
config.
|
33
|
-
config.
|
34
|
-
config.on_experiment_convert = nil # -> (experiment, variant, checkpoint, metadata) { ... }
|
32
|
+
config.on_redis_failover = nil # -> (experiment, error) { ... }
|
33
|
+
config.on_adapter_failover = nil # -> (adapter, error) { ... }
|
35
34
|
|
36
|
-
config.
|
37
|
-
config.
|
38
|
-
config.
|
39
|
-
|
40
|
-
config.
|
41
|
-
config.
|
35
|
+
config.on_experiment_choose = nil # -> (experiment, variant, metadata) { ... }
|
36
|
+
config.on_experiment_use = nil # -> (experiment, variant, metadata) { ... }
|
37
|
+
config.on_experiment_convert = nil # -> (experiment, variant, checkpoint, metadata) { ... }
|
38
|
+
|
39
|
+
config.on_experiment_start = nil # -> (experiment) { ... }
|
40
|
+
config.on_experiment_stop = nil # -> (experiment) { ... }
|
41
|
+
config.on_experiment_resume = nil # -> (experiment) { ... }
|
42
|
+
config.on_experiment_reset = nil # -> (experiment) { ... }
|
43
|
+
config.on_experiment_delete = nil # -> (experiment) { ... }
|
44
|
+
config.on_experiment_winner = nil # -> (experiment, winner) { ... }
|
42
45
|
|
43
46
|
config.return_experiment_winner = nil # -> (experiment, winner) { ... return variant }
|
44
47
|
|