class Ablab::Experiment

Attributes

callbacks[R]
control[R]
groups[R]
name[R]

Public Class Methods

new(name, &block) click to toggle source
# File lib/ablab.rb, line 77
def initialize(name, &block)
  @name      = name.to_sym
  @control   = Group.new(:control, 'control group')
  @groups    = [@control]
  @callbacks = []
  instance_exec(&block)
end

Public Instance Methods

description(desc = nil) click to toggle source
# File lib/ablab.rb, line 85
def description(desc = nil)
  @description = desc if desc
  @description
end
goal(goal = nil) click to toggle source
# File lib/ablab.rb, line 90
def goal(goal = nil)
  @goal = goal if goal
  @goal
end
group(name, options = {}) click to toggle source
# File lib/ablab.rb, line 100
def group(name, options = {})
  group = Group.new(name, options[:description], options[:weight])
  @groups << group
end
on_track(&block) click to toggle source
# File lib/ablab.rb, line 105
def on_track(&block)
  @callbacks << block
end
percentage_of_visitors(percentage = nil) click to toggle source
# File lib/ablab.rb, line 95
def percentage_of_visitors(percentage = nil)
  @percentage_of_visitors = percentage if percentage
  @percentage_of_visitors || 100
end
results() click to toggle source
# File lib/ablab.rb, line 109
def results
  @result ||= Result.new(self)
  @result.data
end
run(session_id, request) click to toggle source
# File lib/ablab.rb, line 114
def run(session_id, request)
  Run.new(self, session_id, request)
end