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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 91
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 72
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
57
58
59
60
61
62
63
64
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 57
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
48
49
50
51
52
53
54
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 48
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
27
28
29
30
31
32
33
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 27
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
40
41
42
43
44
45
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 40
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
|
110
111
112
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 110
def format_time(time, format=TrailGuide::Admin.configuration.date_format)
ActiveSupport::TimeWithZone.new(time.utc, TrailGuide::Admin.configuration.time_zone).strftime(format)
end
|
#peek_param ⇒ Object
36
37
38
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 36
def peek_param
params[TrailGuide::Admin.configuration.peek_parameter]
end
|
#peek_url(experiment, *args, **opts) ⇒ Object
67
68
69
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 67
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
|
#subtitle(context = self) ⇒ Object
20
21
22
23
24
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 20
def subtitle(context=self)
subtitle = TrailGuide::Admin.configuration.subtitle
subtitle = context.instance_exec(&subtitle) if subtitle.respond_to?(:call)
subtitle
end
|
#trailguide_user ⇒ Object
116
117
118
|
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 116
def trailguide_user
send TrailGuide::Admin.configuration.experiment_user.to_sym
end
|