Class: TrailGuide::Admin::ApplicationController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/trail_guide/admin/application_controller.rb

Direct Known Subclasses

ExperimentsController

Instance Method Summary collapse

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.('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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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