Class: TrailGuide::CombinedExperiment
Instance Attribute Summary
#participant
Class Method Summary
collapse
Instance Method Summary
collapse
as_json, #combined_experiments, combined_experiments, configure, experiment_name, #initialize, register!, variants
included, #winner, #winning_variant
#allow_conversion?, #convert!
#algorithm, #allow_participation?, #choose!, #choose_variant!, #track_participation?
#calibrating?, included, #paused?, #paused_at, #run_callbacks, #running?, #scheduled?, #start!, #started?, #started_at, #stopped?, #stopped_at, #winner?
included
Class Method Details
.configuration ⇒ Object
9
10
11
|
# File 'lib/trail_guide/combined_experiment.rb', line 9
def configuration
@configuration ||= Experiments::CombinedConfig.new(self)
end
|
.is_combined? ⇒ Boolean
13
14
15
|
# File 'lib/trail_guide/combined_experiment.rb', line 13
def is_combined?
true
end
|
.pause! ⇒ Object
26
27
28
|
# File 'lib/trail_guide/combined_experiment.rb', line 26
def pause!
parent.pause!
end
|
.paused_at ⇒ Object
42
43
44
|
# File 'lib/trail_guide/combined_experiment.rb', line 42
def paused_at
parent.paused_at
end
|
.resume! ⇒ Object
34
35
36
|
# File 'lib/trail_guide/combined_experiment.rb', line 34
def resume!
parent.resume!
end
|
.start! ⇒ Object
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
22
23
24
|
# File 'lib/trail_guide/combined_experiment.rb', line 22
def start!
parent.start!
end
|
.started_at ⇒ Object
38
39
40
|
# File 'lib/trail_guide/combined_experiment.rb', line 38
def started_at
parent.started_at
end
|
.stop! ⇒ Object
30
31
32
|
# File 'lib/trail_guide/combined_experiment.rb', line 30
def stop!
parent.stop!
end
|
.stopped_at ⇒ Object
46
47
48
|
# File 'lib/trail_guide/combined_experiment.rb', line 46
def stopped_at
parent.stopped_at
end
|
Instance Method Details
#algorithm_choose!(metadata: nil) ⇒ Object
use the parent experiment as the algorithm and map to the matching variant
56
57
58
59
|
# 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 ⇒ Object
51
52
53
|
# File 'lib/trail_guide/combined_experiment.rb', line 51
def parent
@parent ||= self.class.parent.new(participant.participant)
end
|