Class: Kameleoon::Storage::VariationStorage
- Inherits:
-
Object
- Object
- Kameleoon::Storage::VariationStorage
- Defined in:
- lib/kameleoon/storage/variation_storage.rb
Overview
VariationStorage is a container for saved variations associated with a visitor
Instance Method Summary collapse
- #get_hash_saved_variation_id(visitor_code) ⇒ Object
- #get_variation_id(visitor_code, experiment_id) ⇒ Object
-
#initialize ⇒ VariationStorage
constructor
A new instance of VariationStorage.
- #update_variation(visitor_code, experiment_id, variation_id) ⇒ Object
- #variation_valid?(visitor_code, experiment_id, respool_time) ⇒ Boolean
Constructor Details
#initialize ⇒ VariationStorage
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
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 |