Class: Kameleoon::Network::Cookie::CookieManager

Inherits:
Object
  • Object
show all
Defined in:
lib/kameleoon/network/cookie/cookie_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(top_level_domain) ⇒ CookieManager

Returns a new instance of CookieManager.



15
16
17
18
# File 'lib/kameleoon/network/cookie/cookie_manager.rb', line 15

def initialize(top_level_domain)
  @consent_required = false
  @top_level_domain = top_level_domain
end

Instance Attribute Details

Returns the value of attribute consent_required.



13
14
15
# File 'lib/kameleoon/network/cookie/cookie_manager.rb', line 13

def consent_required
  @consent_required
end

Instance Method Details

#get_or_add(cookies, default_visitor_code = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/kameleoon/network/cookie/cookie_manager.rb', line 20

def get_or_add(cookies, default_visitor_code = nil)
  return if cookies.nil?

  visitor_code = get_visitor_code_from_cookies(cookies)
  unless visitor_code.nil?
    Utils::VisitorCode.validate(visitor_code)
    # Remove adding cookies when we will be sure that it doesn't break anything
    add(visitor_code, cookies) unless @consent_required
    return visitor_code
  end

  if default_visitor_code.nil?
    visitor_code = Utils::VisitorCode.generate
    add(visitor_code, cookies) unless @consent_required
    return visitor_code
  end

  visitor_code = default_visitor_code
  Utils::VisitorCode.validate(visitor_code)
  add(visitor_code, cookies)
  visitor_code
end

#update(visitor_code, consent, cookies) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/kameleoon/network/cookie/cookie_manager.rb', line 43

def update(visitor_code, consent, cookies)
  return if cookies.nil?

  if consent
    add(visitor_code, cookies)
  else
    remove(cookies)
  end
end