Class: Experimental::Overrides
- Inherits:
-
Object
- Object
- Experimental::Overrides
- Defined in:
- lib/experimental/overrides.rb
Instance Method Summary collapse
- #[](subject, experiment_name) ⇒ Object
- #[]=(subject, experiment_name, bucket) ⇒ Object
- #include?(subject, experiment_name) ⇒ Boolean
-
#initialize ⇒ Overrides
constructor
A new instance of Overrides.
- #reset ⇒ Object
- #set_default(value) ⇒ Object
Constructor Details
#initialize ⇒ Overrides
Returns a new instance of Overrides.
3 4 5 6 7 8 |
# 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 |
Instance Method Details
#[](subject, experiment_name) ⇒ Object
21 22 23 24 25 26 27 28 |
# 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) ⇒ Object
30 31 32 33 |
# 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) ⇒ Boolean
15 16 17 18 19 |
# 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 ⇒ Object
35 36 37 38 39 |
# File 'lib/experimental/overrides.rb', line 35 def reset @overrides.clear @default_set = false @default = nil end |
#set_default(value) ⇒ Object
10 11 12 13 |
# File 'lib/experimental/overrides.rb', line 10 def set_default(value) @default_set = true @default = value end |