Sha256: 3756fb2b17d9fa2c2caf1d5ce06c9d1293b4d3ae77f1f460ee7fadbff79f0c74
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
module Landable module Traffic class Attribution < ActiveRecord::Base include Landable::TableName KEYS = %w(ad_type ad_group bid_match_type campaign content creative device_type experiment keyword match_type medium network placement position search_term source target) self.record_timestamps = false KEYS.each do |key| lookup_for key.to_sym, class_name: "Landable::Traffic::#{key.classify}".constantize end has_many :visits class << self def transform(parameters) hash = parameters.slice(*KEYS) filter = {} hash.each do |k, v| filter[k.foreign_key] = "Landable::Traffic::#{k.classify}".constantize[v] end filter end def lookup(parameters) where(transform(parameters)).first_or_create rescue ActiveRecord::RecordNotUnique retry end def digest(parameters) Digest::SHA2.base64digest transform(parameters).values.join end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
landable-1.14.0 | app/models/landable/traffic/attribution.rb |
landable-1.13.2 | app/models/landable/traffic/attribution.rb |