class TrailGuide::Experiments::Base
Attributes
participant[R]
Public Class Methods
as_json(opts={})
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 58 def as_json(opts={}) { experiment_name => { started_at: started_at, paused_at: paused_at, stopped_at: stopped_at, winner: winner.try(:name), variants: variants.map(&:as_json).reduce({}) { |r,v| r.merge!(v) }, } } end
combined_experiments()
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 54 def combined_experiments combined.map { |combo| TrailGuide.catalog.find(combo) } end
configuration()
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 29 def configuration @configuration ||= Experiments::Config.new(self) end
configure(*args, &block)
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 33 def configure(*args, &block) configuration.configure(*args, &block) end
experiment_name()
click to toggle source
TODO alias name once specs have solid coverage
# File lib/trail_guide/experiments/base.rb, line 38 def experiment_name configuration.name end
is_combined?()
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 50 def is_combined? false end
new(participant)
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 76 def initialize(participant) @participant = Experiments::Participant.new(self, participant) end
register!()
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 25 def register! TrailGuide.catalog.register(self) end
variants(include_control=true)
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 42 def variants(include_control=true) if include_control configuration.variants else configuration.variants.select { |var| !var.control? } end end
Public Instance Methods
combined_experiments()
click to toggle source
# File lib/trail_guide/experiments/base.rb, line 80 def combined_experiments @combined_experiments ||= self.class.combined_experiments.map do |combo| combo.new(participant.participant) end end