Method: TrailGuide::Experiments::Enrollment#choose!

Defined in:
lib/trail_guide/experiments/enrollment.rb

#choose!(override: nil, metadata: nil, **opts) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/trail_guide/experiments/enrollment.rb', line 8

def choose!(override: nil, metadata: nil, **opts)
  return control if TrailGuide.configuration.disabled

  variant = choose_variant!(override: override, metadata: , **opts)
  run_callbacks(:on_use, variant, participant, )
  variant
rescue Errno::ECONNREFUSED, Redis::BaseError, SocketError => e
  run_callbacks(:on_redis_failover, e)
  return variants.find { |var| var == override } || control if override.present?
  return control
end