class Kybus::Configuration::FeatureFlag::ABTest

Public Class Methods

new(configs) click to toggle source
# File lib/kybus/configs/feature_flag/ab_test.rb, line 7
def initialize(configs)
  @configs = configs
  @threshold = normalize_thershold(configs['threshold'])
end

Public Instance Methods

active?() click to toggle source
# File lib/kybus/configs/feature_flag/ab_test.rb, line 25
def active?
  rand <= @threshold
end
normalize_thershold(value) click to toggle source
# File lib/kybus/configs/feature_flag/ab_test.rb, line 12
def normalize_thershold(value)
  case value
  when Integer
    raise 'Value out of range' unless (0..100).cover?(value)

    value.to_f / 100
  when Float
    raise 'Value out of range' unless (0..1).cover?(value)

    value
  end
end