Class: SplitIoClient::Cache::Senders::ImpressionsFormatter
- Inherits:
-
Object
- Object
- SplitIoClient::Cache::Senders::ImpressionsFormatter
- Defined in:
- lib/splitclient-rb/cache/senders/impressions_formatter.rb
Instance Method Summary collapse
- #call(fetch_all_impressions, raw_impressions = nil) ⇒ Object
-
#initialize(impressions_repository) ⇒ ImpressionsFormatter
constructor
A new instance of ImpressionsFormatter.
Constructor Details
#initialize(impressions_repository) ⇒ ImpressionsFormatter
Returns a new instance of ImpressionsFormatter.
7 8 9 |
# File 'lib/splitclient-rb/cache/senders/impressions_formatter.rb', line 7 def initialize(impressions_repository) @impressions_repository = impressions_repository end |
Instance Method Details
#call(fetch_all_impressions, raw_impressions = nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/splitclient-rb/cache/senders/impressions_formatter.rb', line 11 def call(fetch_all_impressions, raw_impressions = nil) impressions = raw_impressions || (fetch_all_impressions ? @impressions_repository.clear : @impressions_repository.batch) filtered_impressions = filter_impressions(impressions) return [] if impressions.empty? || filtered_impressions.empty? formatted_impressions = unique_features(filtered_impressions).each_with_object([]) do |feature, memo| feature_impressions = feature_impressions(filtered_impressions, feature) current_impressions = current_impressions(feature_impressions) memo << { f: feature.to_sym, i: current_impressions } end formatted_impressions end |