class Experimental::Overrides

Public Class Methods

new() click to toggle source
# File lib/experimental/overrides.rb, line 3
def initialize
  @overrides ||= Hash.new do |experiment_overrides, experiment_name|
    experiment_overrides[experiment_name] = {}
  end
  @default_set = false
end

Public Instance Methods

[](subject, experiment_name) click to toggle source
# File lib/experimental/overrides.rb, line 21
def [](subject, experiment_name)
  experiment_name = experiment_name.to_s
  if @overrides[experiment_name].key?(subject)
    @overrides[experiment_name][subject]
  else
    @default
  end
end
[]=(subject, experiment_name, bucket) click to toggle source
# File lib/experimental/overrides.rb, line 30
def []=(subject, experiment_name, bucket)
  experiment_name = experiment_name.to_s
  @overrides[experiment_name][subject] = bucket
end
include?(subject, experiment_name) click to toggle source
# File lib/experimental/overrides.rb, line 15
def include?(subject, experiment_name)
  return true if @default_set
  experiment_name = experiment_name.to_s
  @overrides.key?(experiment_name) && @overrides[experiment_name].key?(subject)
end
reset() click to toggle source
# File lib/experimental/overrides.rb, line 35
def reset
  @overrides.clear
  @default_set = false
  @default = nil
end
set_default(value) click to toggle source
# File lib/experimental/overrides.rb, line 10
def set_default(value)
  @default_set = true
  @default = value
end