Module: Kameleoon::Utils::HashDouble

Defined in:
lib/kameleoon/utils.rb

Class Method Summary collapse

Class Method Details

.obtain(visitor_code, respool_times = {}, container_id = '') ⇒ Object



34
35
36
# File 'lib/kameleoon/utils.rb', line 34

def self.obtain(visitor_code, respool_times = {}, container_id = '')
  obtain_helper(visitor_code, respool_times, container_id, '')
end

.obtain_helper(visitor_code, respool_times, container_id, suffix) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/kameleoon/utils.rb', line 44

def self.obtain_helper(visitor_code, respool_times, container_id, suffix)
  identifier = visitor_code.to_s
  identifier += container_id.to_s
  identifier += suffix.to_s
  identifier += respool_times.sort.to_h.values.join.to_s if !respool_times.nil? && !respool_times.empty?
  (Digest::SHA256.hexdigest(identifier.encode('UTF-8')).to_i(16) / (BigDecimal('2')**BigDecimal('256'))).round(16)
end

.obtain_rule(visitor_code, container_id = '', suffix = '') ⇒ Object



38
39
40
# File 'lib/kameleoon/utils.rb', line 38

def self.obtain_rule(visitor_code, container_id = '', suffix = '')
  obtain_helper(visitor_code, {}, container_id, suffix)
end