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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e92b5781f0ec93e65f9538268fd8fa00b5be79008ed83337de2b7091020de719
4
- data.tar.gz: 547d8afc88e203a7ce6d0995d0efaa0e582b643c80cc0ffdfc7b2743c31aa18b
3
+ metadata.gz: 2f3fe6f7f5a63ba2a075cb5ce550410ab6daed98a35ee565468bd45205ea784b
4
+ data.tar.gz: fd1fe329b9c64e4a1da9acaeb47b5601a76311123104d1bd9b4e8dec21076c0b
5
5
  SHA512:
6
- metadata.gz: 96d7e94e72fb228b63cac5331d74b8ec5440ad234e4350b47191343b797c83ad50d35a0c9d87131dfc8157fa99355df7e36cff159ce05ab88e70ae5b6315e02d
7
- data.tar.gz: 1323352dda2d506d4153c9b70bffd90250077b4b9728fa732f878ca181670921758a4508754e5d38484ced8b8cd684eaa06d0489631b02a15f8261a3b7438efa
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: [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
- return_winner: [TrailGuide.configuration.return_experiment_winner].flatten.compact,
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
 
@@ -2,7 +2,7 @@ module TrailGuide
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 14
5
+ PATCH = 15
6
6
  VERSION = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
 
8
8
  class << self
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.on_experiment_choose = nil # -> (experiment, variant, metadata) { ... }
33
- config.on_experiment_use = nil # -> (experiment, variant, metadata) { ... }
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.on_experiment_start = nil # -> (experiment) { ... }
37
- config.on_experiment_stop = nil # -> (experiment) { ... }
38
- config.on_experiment_resume = nil # -> (experiment) { ... }
39
- config.on_experiment_winner = nil # -> (experiment, winner) { ... }
40
- config.on_experiment_reset = nil # -> (experiment) { ... }
41
- config.on_experiment_delete = nil # -> (experiment) { ... }
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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailguide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rebec