Exception: SplitIoClient::Impressions
- Inherits:
-
NoMethodError
- Object
- NoMethodError
- SplitIoClient::Impressions
- Defined in:
- lib/engine/impressions/impressions.rb
Overview
class to manage cached impressions
Instance Attribute Summary collapse
-
#max_number_of_keys ⇒ int
max number of cached entries for impressions.
-
#queue ⇒ object
the queue of cached impression values.
Instance Method Summary collapse
-
#clear ⇒ Object
clears the impressions queue.
-
#initialize(max) ⇒ Impressions
constructor
initializes the class.
-
#log(id, feature, treatment, time) ⇒ Object
generates a new entry for impressions list.
Constructor Details
#initialize(max) ⇒ Impressions
initializes the class
22 23 24 25 |
# File 'lib/engine/impressions/impressions.rb', line 22 def initialize(max) @queue = Queue.new @max_number_of_keys = max end |
Instance Attribute Details
#max_number_of_keys ⇒ int
max number of cached entries for impressions
16 17 18 |
# File 'lib/engine/impressions/impressions.rb', line 16 def max_number_of_keys @max_number_of_keys end |
#queue ⇒ object
the queue of cached impression values
11 12 13 |
# File 'lib/engine/impressions/impressions.rb', line 11 def queue @queue end |
Instance Method Details
#clear ⇒ Object
clears the impressions queue
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/engine/impressions/impressions.rb', line 45 def clear popped_impressions = [] begin loop do impression_element = @queue.pop(true) feature_hash = popped_impressions.find { |i| i[:feature] == impression_element[:feature] } if feature_hash.nil? popped_impressions << {feature: impression_element[:feature], impressions: [] << impression_element[:impressions]} else feature_hash[:impressions] << impression_element[:impressions] end end rescue ThreadError end popped_impressions end |
#log(id, feature, treatment, time) ⇒ Object
generates a new entry for impressions list
36 37 38 39 |
# File 'lib/engine/impressions/impressions.rb', line 36 def log(id, feature, treatment, time) impressions = KeyImpressions.new(id, treatment, time) @queue << {feature: feature, impressions: impressions} end |