Class: TrailGuide::Admin::ApplicationController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- TrailGuide::Admin::ApplicationController
show all
- Defined in:
- app/controllers/trail_guide/admin/application_controller.rb
Instance Method Summary
collapse
Instance Method Details
#experiment_color(experiment) ⇒ Object
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 84
def experiment_color(experiment)
if experiment.winner?
'primary'
elsif experiment.started?
if experiment.stopped?
'danger'
elsif experiment.paused?
'warning'
else
'success'
end
elsif experiment.scheduled?
'info'
else
'secondary'
end
end
|
#experiment_icon(experiment) ⇒ Object
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 65
def experiment_icon(experiment)
if experiment.winner?
'fa-flag-checkered'
elsif experiment.started?
if experiment.stopped?
'fa-stop'
elsif experiment.paused?
'fa-pause'
else
'fa-play'
end
elsif experiment.scheduled?
'fa-clock'
else
'fa-flask'
end
end
|
#experiment_metric(experiment, metric = nil, &block) ⇒ Object
50
51
52
53
54
55
56
57
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 50
def experiment_metric(experiment, metric=nil, &block)
if experiment_metrics_visible?(experiment)
yield and return if block_given?
return helpers.number_with_delimiter(metric.to_i)
end
return helpers.content_tag('span', nil, class: 'fas fa-eye-slash text-muted', data: {toggle: 'tooltip'}, title: "metrics are hidden until this experiment reaches it's target sample size")
end
|
#experiment_metrics_visible?(experiment) ⇒ Boolean
41
42
43
44
45
46
47
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 41
def experiment_metrics_visible?(experiment)
return true unless experiment.started? && !experiment.stopped? && !experiment.winner?
return true if experiment_peeking?(experiment)
return false if experiment.combined? && !experiment.combined_experiments.all?(&:target_sample_size_reached?)
return true if experiment.target_sample_size_reached?
return false
end
|
#experiment_peekable?(experiment) ⇒ Boolean
20
21
22
23
24
25
26
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 20
def experiment_peekable?(experiment)
return false unless TrailGuide::Admin.configuration.peek_parameter
return false unless experiment.started? && !experiment.stopped? && !experiment.winner?
return true if experiment.combined? && !experiment.combined_experiments.all?(&:target_sample_size_reached?)
return false if experiment.target_sample_size_reached?
return true
end
|
#experiment_peeking?(experiment) ⇒ Boolean
33
34
35
36
37
38
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 33
def experiment_peeking?(experiment)
return params.key?(TrailGuide::Admin.configuration.peek_parameter)
peek_param == experiment.experiment_name.to_s ||
experiment.is_combined? && peek_param == experiment.parent.experiment_name.to_s
end
|
#peek_param ⇒ Object
29
30
31
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 29
def peek_param
params[TrailGuide::Admin.configuration.peek_parameter]
end
|
#peek_url(experiment, *args, **opts) ⇒ Object
60
61
62
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 60
def peek_url(experiment, *args, **opts)
trail_guide_admin.experiment_url(experiment.experiment_name, *args, opts.merge({TrailGuide::Admin.configuration.peek_parameter => experiment.experiment_name}))
end
|
#preview_url(variant, *args, **opts) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 6
def preview_url(variant, *args, **opts)
config_url = variant.experiment.configuration.preview_url
param = TrailGuide.configuration.override_parameter
opts = opts.merge({param => {variant.experiment.experiment_name => variant.name}})
if config_url.respond_to?(:call)
main_app.instance_exec *args, **opts, &config_url
elsif config_url.is_a?(Symbol)
main_app.send(config_url, *args, **opts)
else
config_url.to_s + "?#{param.to_s}[#{variant.experiment.experiment_name}]=#{variant.name}"
end
end
|