Class: Kameleoon::Storage::VariationStorage

Inherits:
Object
  • Object
show all
Defined in:
lib/kameleoon/storage/variation_storage.rb

Overview

VariationStorage is a container for saved variations associated with a visitor

Instance Method Summary collapse

Constructor Details

#initializeVariationStorage

Returns a new instance of VariationStorage.



9
10
11
# File 'lib/kameleoon/storage/variation_storage.rb', line 9

def initialize
  @storage = {}
end

Instance Method Details

#get_hash_saved_variation_id(visitor_code) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/kameleoon/storage/variation_storage.rb', line 31

def get_hash_saved_variation_id(visitor_code)
  return nil if @storage[visitor_code].nil?

  map_variations = {}
  @storage[visitor_code].each do |key, value|
    map_variations[key] = value.variation_id
  end
  map_variations
end

#get_variation_id(visitor_code, experiment_id) ⇒ Object



13
14
15
# File 'lib/kameleoon/storage/variation_storage.rb', line 13

def get_variation_id(visitor_code, experiment_id)
  variation_valid?(visitor_code, experiment_id, nil)
end

#update_variation(visitor_code, experiment_id, variation_id) ⇒ Object



26
27
28
29
# File 'lib/kameleoon/storage/variation_storage.rb', line 26

def update_variation(visitor_code, experiment_id, variation_id)
  @storage[visitor_code] = {} if @storage[visitor_code].nil?
  @storage[visitor_code][experiment_id] = Kameleoon::Storage::VisitorVariation.new(variation_id)
end

#variation_valid?(visitor_code, experiment_id, respool_time) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
# File 'lib/kameleoon/storage/variation_storage.rb', line 17

def variation_valid?(visitor_code, experiment_id, respool_time)
  return nil if @storage[visitor_code].nil? || @storage[visitor_code][experiment_id].nil?

  variation = @storage[visitor_code][experiment_id]
  return nil unless variation.valid?(respool_time)

  variation.variation_id
end