Class: Metry::Experiment
- Inherits:
-
Object
- Object
- Metry::Experiment
- Defined in:
- lib/metry/experiment.rb
Constant Summary collapse
- METHODS =
{ "rand" => proc{|list, visitor| list.sort_by{rand}.first}, "mod_visitor" => proc{|list, visitor| list[(visitor['_id'].to_i-1)%list.size]}, # mod_visitor will only work with predictable_keys = true }
Instance Method Summary collapse
- #choose(options, method = nil) ⇒ Object
-
#initialize(name, event, visitor) ⇒ Experiment
constructor
A new instance of Experiment.
Constructor Details
#initialize(name, event, visitor) ⇒ Experiment
Returns a new instance of Experiment.
8 9 10 11 12 |
# File 'lib/metry/experiment.rb', line 8 def initialize(name, event, visitor) @key = "experiment:#{name}" @event = event @visitor = visitor end |
Instance Method Details
#choose(options, method = nil) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/metry/experiment.rb', line 14 def choose(, method=nil) unless choice = @visitor[@key] choice = METHODS[method || "rand"][.keys, @visitor] @visitor[@key] = choice end @event[@key] = choice [choice] end |