Class: TrailGuide::Experiments::Base
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Results
included, #winner, #winning_variant
Methods included from Conversion
#allow_conversion?, #convert!
Methods included from Enrollment
#algorithm, #algorithm_choose!, #allow_participation?, #choose!, #choose_variant!
Methods included from Lifecycle
#calibrating?, included, #paused?, #paused_at, #run_callbacks, #running?, #scheduled?, #start!, #started?, #started_at, #stopped?, #stopped_at, #winner?
included
Constructor Details
#initialize(participant) ⇒ Base
Returns a new instance of Base.
76
77
78
|
# File 'lib/trail_guide/experiments/base.rb', line 76
def initialize(participant)
@participant = Experiments::Participant.new(self, participant)
end
|
Instance Attribute Details
#participant ⇒ Object
Returns the value of attribute participant.
69
70
71
|
# File 'lib/trail_guide/experiments/base.rb', line 69
def participant
@participant
end
|
Class Method Details
.as_json(opts = {}) ⇒ Object
58
59
60
61
62
63
64
65
66
|
# 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 ⇒ Object
54
55
56
|
# File 'lib/trail_guide/experiments/base.rb', line 54
def combined_experiments
combined.map { |combo| TrailGuide.catalog.find(combo) }
end
|
.configuration ⇒ Object
29
30
31
|
# File 'lib/trail_guide/experiments/base.rb', line 29
def configuration
@configuration ||= Experiments::Config.new(self)
end
|
33
34
35
|
# File 'lib/trail_guide/experiments/base.rb', line 33
def configure(*args, &block)
configuration.configure(*args, &block)
end
|
.experiment_name ⇒ Object
TODO alias name once specs have solid coverage
38
39
40
|
# File 'lib/trail_guide/experiments/base.rb', line 38
def experiment_name
configuration.name
end
|
.is_combined? ⇒ Boolean
50
51
52
|
# File 'lib/trail_guide/experiments/base.rb', line 50
def is_combined?
false
end
|
.register! ⇒ Object
25
26
27
|
# File 'lib/trail_guide/experiments/base.rb', line 25
def register!
TrailGuide.catalog.register(self)
end
|
.variants(include_control = true) ⇒ Object
42
43
44
45
46
47
48
|
# 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
|
Instance Method Details
#combined_experiments ⇒ Object
80
81
82
83
84
|
# 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
|