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