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