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 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