Class: SplitIoClient::Engine::Common::ImpressionManager
- Inherits:
-
Object
- Object
- SplitIoClient::Engine::Common::ImpressionManager
- Defined in:
- lib/splitclient-rb/engine/common/impressions_manager.rb
Instance Method Summary collapse
-
#build_impression(matching_key, bucketing_key, split_name, treatment, params = {}) ⇒ Object
added param time for test.
-
#initialize(config, impressions_repository, impression_counter) ⇒ ImpressionManager
constructor
A new instance of ImpressionManager.
- #track(impressions) ⇒ Object
Constructor Details
#initialize(config, impressions_repository, impression_counter) ⇒ ImpressionManager
Returns a new instance of ImpressionManager.
7 8 9 10 11 12 |
# File 'lib/splitclient-rb/engine/common/impressions_manager.rb', line 7 def initialize(config, impressions_repository, impression_counter) @config = config @impressions_repository = impressions_repository @impression_counter = impression_counter @impression_observer = SplitIoClient::Observers::ImpressionObserver.new end |
Instance Method Details
#build_impression(matching_key, bucketing_key, split_name, treatment, params = {}) ⇒ Object
added param time for test
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/splitclient-rb/engine/common/impressions_manager.rb', line 15 def build_impression(matching_key, bucketing_key, split_name, treatment, params = {}) impression_data = impression_data(matching_key, bucketing_key, split_name, treatment, params[:time]) impression_data[:pt] = @impression_observer.test_and_set(impression_data) unless redis? @impression_counter.inc(split_name, impression_data[:m]) if optimized? && !redis? impression(impression_data, params[:attributes]) rescue StandardError => error @config.log_found_exception(__method__.to_s, error) end |
#track(impressions) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/splitclient-rb/engine/common/impressions_manager.rb', line 27 def track(impressions) return if impressions.empty? impression_router.add_bulk(impressions) if optimized? && !redis? optimized_impressions = impressions.select { |imp| should_queue_impression?(imp[:i]) } @impressions_repository.add_bulk(optimized_impressions) else @impressions_repository.add_bulk(impressions) end rescue StandardError => error @config.log_found_exception(__method__.to_s, error) end |