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, filter) ⇒ RemoteVisitorData

Returns a new instance of RemoteVisitorData.



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

def initialize(hash, filter)
  @filter = filter
  @visit_number = 0
  current_visit = hash['currentVisit']
  parse_visit(current_visit, false) unless current_visit.nil?
  previous_visits = hash['previousVisits']
  previous_visits = [] if previous_visits.nil?

  if previous_visits.size.positive?
    prev_visits = []
    previous_visits.each do |visit|
      prev_visits.push(VisitorVisits::Visit.new(visit['timeStarted'] || 0, visit['timeLastEvent']))
      parse_visit(visit, true)
    end
    @visitor_visits = VisitorVisits.new(prev_visits, @visit_number)
  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

#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

#visitor_visitsObject (readonly)

Returns the value of attribute visitor_visits.



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

def visitor_visits
  @visitor_visits
end

Instance Method Details

#collect_data_to_addObject



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

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(@visitor_visits) unless @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



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

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



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

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