class TrailGuide::CombinedExperiment

Public Class Methods

configuration() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 9
def configuration
  @configuration ||= Experiments::CombinedConfig.new(self)
end
is_combined?() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 13
def is_combined?
  true
end
pause!() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 26
def pause!
  parent.pause!
end
paused_at() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 42
def paused_at
  parent.paused_at
end
resume!() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 34
def resume!
  parent.resume!
end
start!() click to toggle source

TODO if just I delegate on this inheriting class, will that override the defined methods on the base class? and will they interplay nicely? like with `started?` calling `started_at`, etc.?

really wishing i'd written some specs right about now :-P

# File lib/trail_guide/combined_experiment.rb, line 22
def start!
  parent.start!
end
started_at() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 38
def started_at
  parent.started_at
end
stop!() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 30
def stop!
  parent.stop!
end
stopped_at() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 46
def stopped_at
  parent.stopped_at
end

Public Instance Methods

algorithm_choose!(metadata: nil) click to toggle source

use the parent experiment as the algorithm and map to the matching variant

# File lib/trail_guide/combined_experiment.rb, line 56
def algorithm_choose!(metadata: nil)
  variant = parent.choose!(metadata: metadata)
  variants.find { |var| var == variant.name }
end
parent() click to toggle source
# File lib/trail_guide/combined_experiment.rb, line 51
def parent
  @parent ||= self.class.parent.new(participant.participant)
end