class Ablab::Store::Memory

Public Class Methods

new() click to toggle source
# File lib/ablab/store/memory.rb, line 6
def initialize
  @views = Hash.new do |hash, key|
    hash[key] = Hash.new { |h, k| h[k] = 0 }
  end
  @sessions = Hash.new do |hash, key|
    hash[key] = Hash.new { |h, k| h[k] = Set.new }
  end
  @successes = Hash.new do |hash, key|
    hash[key] = Hash.new { |h, k| h[k] = 0 }
  end
  @conversions = Hash.new do |hash, key|
    hash[key] = Hash.new { |h, k| h[k] = Set.new }
  end
end

Public Instance Methods

conversions(experiment, bucket) click to toggle source
# File lib/ablab/store/memory.rb, line 41
def conversions(experiment, bucket)
  @conversions[experiment][bucket].size
end
counts(experiment, bucket) click to toggle source
# File lib/ablab/store/memory.rb, line 45
def counts(experiment, bucket)
  {
    views:       views(experiment, bucket),
    sessions:    sessions(experiment, bucket),
    successes:   successes(experiment, bucket),
    conversions: conversions(experiment, bucket)
  }
end
sessions(experiment, bucket) click to toggle source
# File lib/ablab/store/memory.rb, line 33
def sessions(experiment, bucket)
  @sessions[experiment][bucket].size
end
successes(experiment, bucket) click to toggle source
# File lib/ablab/store/memory.rb, line 37
def successes(experiment, bucket)
  @successes[experiment][bucket]
end
track_success!(experiment, bucket, session_id) click to toggle source
# File lib/ablab/store/memory.rb, line 25
def track_success!(experiment, bucket, session_id)
  track(experiment, bucket, session_id, @successes, @conversions)
end
track_view!(experiment, bucket, session_id) click to toggle source
# File lib/ablab/store/memory.rb, line 21
def track_view!(experiment, bucket, session_id)
  track(experiment, bucket, session_id, @views, @sessions)
end
views(experiment, bucket) click to toggle source
# File lib/ablab/store/memory.rb, line 29
def views(experiment, bucket)
  @views[experiment][bucket]
end

Private Instance Methods

track(experiment, bucket, session_id, counter, set) click to toggle source
# File lib/ablab/store/memory.rb, line 54
        def track(experiment, bucket, session_id, counter, set)
  return false if bucket.nil?
  counter[experiment][bucket] += 1
  set[experiment][bucket].add(session_id)
end