Class: Ablab::Store::Memory

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

Instance Method Summary collapse

Constructor Details

#initializeMemory

Returns a new instance of Memory.



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 { |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

Instance Method Details

#conversions(experiment, bucket) ⇒ Object



41
42
43
# File 'lib/ablab/store/memory.rb', line 41

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

#counts(experiment, bucket) ⇒ Object



45
46
47
48
49
50
51
52
# 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) ⇒ Object



33
34
35
# File 'lib/ablab/store/memory.rb', line 33

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

#successes(experiment, bucket) ⇒ Object



37
38
39
# File 'lib/ablab/store/memory.rb', line 37

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

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



25
26
27
# 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) ⇒ Object



21
22
23
# 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) ⇒ Object



29
30
31
# File 'lib/ablab/store/memory.rb', line 29

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