Class: Kameleoon::Managers::RemoteData::RemoteVisitorData

Inherits:
Object
  • Object
show all
Defined in:
lib/kameleoon/managers/remote_data/remote_visitor_data.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ RemoteVisitorData

Returns a new instance of RemoteVisitorData.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 23

def initialize(hash)
  current_visit = hash['currentVisit']
  parse_visit(current_visit) unless current_visit.nil?
  previous_visits = hash['previousVisits']
  previous_visits = [] if previous_visits.nil?

  if previous_visits.size.positive?
    times_started = []
    previous_visits.each do |visit|
      times_started.push(visit['timeStarted'])
      parse_visit(visit)
    end
    @previous_visitor_visits = VisitorVisits.new(times_started)
  end
  @kcs_heat = parse_kcs_heat(hash['kcs'])
  @cbs = parse_cbscores(hash['cbs'])
end

Instance Attribute Details

#browserObject (readonly)

Returns the value of attribute browser.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def browser
  @browser
end

#cbsObject (readonly)

Returns the value of attribute cbs.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def cbs
  @cbs
end

#conversionsObject (readonly)

Returns the value of attribute conversions.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def conversions
  @conversions
end

#custom_data_dictObject (readonly)

Returns the value of attribute custom_data_dict.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def custom_data_dict
  @custom_data_dict
end

#deviceObject (readonly)

Returns the value of attribute device.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def device
  @device
end

#experimentsObject (readonly)

Returns the value of attribute experiments.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def experiments
  @experiments
end

#geolocationObject (readonly)

Returns the value of attribute geolocation.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def geolocation
  @geolocation
end

#kcs_heatObject (readonly)

Returns the value of attribute kcs_heat.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def kcs_heat
  @kcs_heat
end

#operating_systemObject (readonly)

Returns the value of attribute operating_system.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def operating_system
  @operating_system
end

#page_view_visitsObject (readonly)

Returns the value of attribute page_view_visits.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def page_view_visits
  @page_view_visits
end

#personalizationsObject (readonly)

Returns the value of attribute personalizations.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def personalizations
  @personalizations
end

#previous_visitor_visitsObject (readonly)

Returns the value of attribute previous_visitor_visits.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def previous_visitor_visits
  @previous_visitor_visits
end

#visitor_codeObject (readonly)

Returns the value of attribute visitor_code.



20
21
22
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 20

def visitor_code
  @visitor_code
end

Instance Method Details

#collect_data_to_addObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 41

def collect_data_to_add
  data_to_add = []
  data_to_add.concat(@custom_data_dict.values) unless @custom_data_dict.nil?
  data_to_add.push(@previous_visitor_visits) unless @previous_visitor_visits.nil?
  data_to_add.push(@kcs_heat) unless @kcs_heat.nil?
  data_to_add.push(@cbs) unless @cbs.nil?
  data_to_add.concat(@page_view_visits.values) unless @page_view_visits.nil?
  data_to_add.concat(@experiments.values) unless @experiments.nil?
  data_to_add.concat(@personalizations.values) unless @personalizations.nil?
  data_to_add.concat(conversions_single_objects)
end

#collect_data_to_returnObject



53
54
55
56
57
58
59
60
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 53

def collect_data_to_return
  data_to_return = []
  data_to_return.concat(@custom_data_dict.values) unless @custom_data_dict.nil?
  @page_view_visits&.each_value do |visit|
    data_to_return.push(visit.page_view)
  end
  data_to_return.concat(conversions_single_objects)
end

#mark_data_as_sent(custom_data_info) ⇒ Object



62
63
64
65
66
67
68
69
70
71
# File 'lib/kameleoon/managers/remote_data/remote_visitor_data.rb', line 62

def mark_data_as_sent(custom_data_info)
  @custom_data_dict&.each_value do |data|
    data.mark_as_sent unless custom_data_info.visitor_scope?(data.id)
  end
  @experiments&.each_value(&:mark_as_sent)
  @page_view_visits&.each_value do |visit|
    visit.page_view.mark_as_sent
  end
  conversions_single_objects.each(&:mark_as_sent)
end