Class: Ablab::Run

Inherits:
Object
  • Object
show all
Defined in:
lib/ablab.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(experiment, session_id) ⇒ Run

Returns a new instance of Run.



86
87
88
89
# File 'lib/ablab.rb', line 86

def initialize(experiment, session_id)
  @experiment, @session_id = experiment, session_id
  @experiment = experiment
end

Instance Attribute Details

#experimentObject (readonly)

Returns the value of attribute experiment.



84
85
86
# File 'lib/ablab.rb', line 84

def experiment
  @experiment
end

#session_idObject (readonly)

Returns the value of attribute session_id.



84
85
86
# File 'lib/ablab.rb', line 84

def session_id
  @session_id
end

Instance Method Details

#drawObject



109
110
111
# File 'lib/ablab.rb', line 109

def draw
  Random.new(session_id.hash ^ experiment.name.hash).rand(1000)
end

#groupObject



103
104
105
106
107
# File 'lib/ablab.rb', line 103

def group
  return @group unless @group.nil?
  idx = (draw / (1000.0 / experiment.groups.size)).floor
  @group = experiment.groups[idx].name
end

#in_group?(name) ⇒ Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/ablab.rb', line 91

def in_group?(name)
  group == name
end

#track_success!Object



99
100
101
# File 'lib/ablab.rb', line 99

def track_success!
  Ablab.tracker.track_success!(experiment.name, group, session_id)
end

#track_view!Object



95
96
97
# File 'lib/ablab.rb', line 95

def track_view!
  Ablab.tracker.track_view!(experiment.name, group, session_id)
end