Sha256: 54f1826a6e8c98673d00fce8b9bb3b19affee3c41cf1d01f1b64a788153db7d3
Contents?: true
Size: 1.45 KB
Versions: 108
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true module SplitIoClient module Cache module Repositories # Repository which forwards impressions interface to the selected adapter class ImpressionsRepository < Repository extend Forwardable def_delegators :@repository, :add, :add_bulk, :batch, :clear, :empty? def initialize(config) super(config) @repository = case @config.impressions_adapter.class.to_s when 'SplitIoClient::Cache::Adapters::MemoryAdapter' Repositories::Impressions::MemoryRepository.new(@config) when 'SplitIoClient::Cache::Adapters::RedisAdapter' Repositories::Impressions::RedisRepository.new(@config) end end protected def impression_data(matching_key, bucketing_key, split_name, treatment, timestamp) { k: matching_key, b: bucketing_key, f: split_name, t: treatment[:treatment], r: applied_rule(treatment[:label]), c: treatment[:change_number], m: timestamp } end def metadata { s: "#{@config.language}-#{@config.version}", i: @config.machine_ip, n: @config.machine_name } end def applied_rule(label) @config.labels_enabled ? label : nil end end end end end
Version data entries
108 entries across 108 versions & 1 rubygems