Class: TrailGuide::Admin::ApplicationController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- TrailGuide::Admin::ApplicationController
- Defined in:
- app/controllers/trail_guide/admin/application_controller.rb
Direct Known Subclasses
Instance Method Summary collapse
- #experiment_metric(experiment, metric) ⇒ Object
- #experiment_metrics_visible?(experiment) ⇒ Boolean
- #experiment_peekable?(experiment) ⇒ Boolean
- #experiment_peeking?(experiment) ⇒ Boolean
- #peek_url(experiment, *args, **opts) ⇒ Object
- #preview_url(variant, *args, **opts) ⇒ Object
Instance Method Details
#experiment_metric(experiment, metric) ⇒ Object
40 41 42 43 |
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 40 def experiment_metric(experiment, metric) return helpers.number_with_delimiter(metric) if experiment_metrics_visible?(experiment) return helpers.content_tag('span', nil, class: 'fas fa-eye-slash', data: {toggle: 'tooltip'}, title: "metrics are hidden until this experiment reaches it's target sample size") end |
#experiment_metrics_visible?(experiment) ⇒ Boolean
32 33 34 35 36 37 |
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 32 def experiment_metrics_visible?(experiment) return true unless experiment.started? && !experiment.stopped? return true if params[TrailGuide::Admin.configuration.peek_parameter] == experiment.experiment_name.to_s return true if experiment.target_sample_size_reached? return false end |
#experiment_peekable?(experiment) ⇒ Boolean
19 20 21 22 23 24 |
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 19 def experiment_peekable?(experiment) return false unless TrailGuide::Admin.configuration.peek_parameter return false unless experiment.started? && !experiment.stopped? return false if experiment.target_sample_size_reached? return true end |
#experiment_peeking?(experiment) ⇒ Boolean
27 28 29 |
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 27 def experiment_peeking?(experiment) params[TrailGuide::Admin.configuration.peek_parameter] == experiment.experiment_name.to_s end |
#peek_url(experiment, *args, **opts) ⇒ Object
46 47 48 |
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 46 def peek_url(experiment, *args, **opts) trail_guide_admin.experiments_url(*args, opts.merge({TrailGuide::Admin.configuration.peek_parameter => experiment.experiment_name, anchor: experiment.experiment_name})) end |
#preview_url(variant, *args, **opts) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/controllers/trail_guide/admin/application_controller.rb', line 6 def preview_url(variant, *args, **opts) config_url = variant.experiment.configuration.preview_url opts = opts.merge({experiment: {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 + "?experiment[#{variant.experiment.experiment_name}]=#{variant.name}" end end |