Class: Ablab::Store::Memory

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

Instance Method Summary collapse

Constructor Details

#initializeMemory



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ablab/store/memory.rb', line 6

def initialize
  @views = Hash.new do |hash, key|
    hash[key] = Hash.new { |hash, key| hash[key] = 0 }
  end
  @sessions = Hash.new do |hash, key|
    hash[key] = Hash.new { |hash, key| hash[key] = Set.new }
  end
  @successes = Hash.new do |hash, key|
    hash[key] = Hash.new { |hash, key| hash[key] = 0 }
  end
  @conversions = Hash.new do |hash, key|
    hash[key] = Hash.new { |hash, key| hash[key] = Set.new }
  end
end

Instance Method Details

#conversions(experiment, bucket) ⇒ Object



43
44
45
# File 'lib/ablab/store/memory.rb', line 43

def conversions(experiment, bucket)
  @conversions[experiment][bucket].size
end

#counts(experiment, bucket) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/ablab/store/memory.rb', line 47

def counts(experiment, bucket)
  {
    views:       views(experiment, bucket),
    sessions:    sessions(experiment, bucket),
    successes:   successes(experiment, bucket),
    conversions: conversions(experiment, bucket)
  }
end

#sessions(experiment, bucket) ⇒ Object



35
36
37
# File 'lib/ablab/store/memory.rb', line 35

def sessions(experiment, bucket)
  @sessions[experiment][bucket].size
end

#successes(experiment, bucket) ⇒ Object



39
40
41
# File 'lib/ablab/store/memory.rb', line 39

def successes(experiment, bucket)
  @successes[experiment][bucket]
end

#track_success!(experiment, bucket, session_id) ⇒ Object



26
27
28
29
# File 'lib/ablab/store/memory.rb', line 26

def track_success!(experiment, bucket, session_id)
  @successes[experiment][bucket] += 1
  @conversions[experiment][bucket].add(session_id)
end

#track_view!(experiment, bucket, session_id) ⇒ Object



21
22
23
24
# File 'lib/ablab/store/memory.rb', line 21

def track_view!(experiment, bucket, session_id)
  @views[experiment][bucket] += 1
  @sessions[experiment][bucket].add(session_id)
end

#views(experiment, bucket) ⇒ Object



31
32
33
# File 'lib/ablab/store/memory.rb', line 31

def views(experiment, bucket)
  @views[experiment][bucket]
end