module TrailGuide::Experiments::Lifecycle

Public Class Methods

included(base) click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 5
def self.included(base)
  base.send :extend, ClassMethods
end

Public Instance Methods

calibrating?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 188
def calibrating?
  enable_calibration? && start_manually? && !started?
end
paused?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 176
def paused?
  paused_at && paused_at <= Time.now
end
paused_at() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 160
def paused_at
  @paused_at ||= self.class.paused_at
end
run_callbacks(hook, *args) click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 129
def run_callbacks(hook, *args)
  return unless callbacks[hook]
  if [:allow_participation, :allow_conversion, :track_participation, :rollout_winner].include?(hook)
    callbacks[hook].reduce(args.slice!(0,1)[0]) do |result, callback|
      if callback.respond_to?(:call)
        callback.call(self, result, *args)
      else
        send(callback, self, result, *args)
      end
    end
  else
    args.unshift(self)
    callbacks[hook].each do |callback|
      if callback.respond_to?(:call)
        callback.call(*args)
      else
        send(callback, *args)
      end
    end
  end
end
running?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 184
def running?
  started? && !paused? && !stopped?
end
scheduled?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 168
def scheduled?
  started_at && started_at > Time.now
end
start!() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 151
def start!
  @started_at = nil
  self.class.start!
end
started?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 172
def started?
  started_at && started_at <= Time.now
end
started_at() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 156
def started_at
  @started_at ||= self.class.started_at
end
stopped?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 180
def stopped?
  stopped_at && stopped_at <= Time.now
end
stopped_at() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 164
def stopped_at
  @stopped_at ||= self.class.stopped_at
end
winner?() click to toggle source
# File lib/trail_guide/experiments/lifecycle.rb, line 192
def winner?
  return @has_winner unless @has_winner.nil?
  @has_winner = self.class.winner?
end