class TrailGuide::Metrics::Config

Constants

CALLBACK_KEYS
INHERIT_KEYS

Attributes

metric[R]

Public Class Methods

new(metric, *args, **opts, &block) click to toggle source
Calls superclass method
# File lib/trail_guide/metrics/config.rb, line 9
def initialize(metric, *args, **opts, &block)
  @metric = metric

  opts = INHERIT_KEYS.map do |key|
    val = experiment.configuration[key]
    val = val.dup if val
    [ key, val ]
  end.to_h.merge(opts)

  super(*args, **opts, &block)
end

Public Instance Methods

allow_conversion(meth=nil, &block) click to toggle source

TODO do we allow a method here? do we call it on the experiment?

# File lib/trail_guide/metrics/config.rb, line 34
def allow_conversion(meth=nil, &block)
  raise ArgumentError if meth.nil? && !block_given?
  self[:allow_conversion] ||= []
  self[:allow_conversion] << (meth || block)
end
allow_multiple_conversions?() click to toggle source
# File lib/trail_guide/metrics/config.rb, line 29
def allow_multiple_conversions?
  !!allow_multiple_conversions
end
callbacks() click to toggle source
# File lib/trail_guide/metrics/config.rb, line 25
def callbacks
  to_h.slice(*CALLBACK_KEYS).map { |k,v| [k, [v].flatten.compact] }.to_h
end
experiment() click to toggle source
# File lib/trail_guide/metrics/config.rb, line 21
def experiment
  metric.experiment
end
on_convert(meth=nil, &block) click to toggle source
# File lib/trail_guide/metrics/config.rb, line 40
def on_convert(meth=nil, &block)
  raise ArgumentError if meth.nil? && !block_given?
  self[:on_convert] ||= []
  self[:on_convert] << (meth || block)
end