trailguide 0.1.14 → 0.1.15
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 +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
|
|