Class: Kameleoon::VisitorVisits

Inherits:
DuplicationUnsafeData show all
Defined in:
lib/kameleoon/data/visitor_visits.rb

Defined Under Namespace

Classes: Visit

Instance Attribute Summary collapse

Attributes inherited from Data

#instance

Instance Method Summary collapse

Methods inherited from Data

#mark_as_sent, #mark_as_transmitting, #mark_as_unsent, #sent, #transmitting, #unsent

Constructor Details

#initialize(prev_visits, visit_number = 0, time_started: 0, time_since_previous_visit: 0) ⇒ VisitorVisits

Returns a new instance of VisitorVisits.



10
11
12
13
14
15
16
17
# File 'lib/kameleoon/data/visitor_visits.rb', line 10

def initialize(prev_visits, visit_number = 0, time_started: 0, time_since_previous_visit: 0)
  super(DataType::VISITOR_VISITS)
  @visit_number = visit_number >= prev_visits.size ? visit_number : prev_visits.size
  @prev_visits = prev_visits
  @prev_visits.freeze
  @time_started = time_started
  @time_since_previous_visit = time_since_previous_visit
end

Instance Attribute Details

#prev_visitsObject (readonly)

Returns the value of attribute prev_visits.



8
9
10
# File 'lib/kameleoon/data/visitor_visits.rb', line 8

def prev_visits
  @prev_visits
end

#time_since_previous_visitObject (readonly)

Returns the value of attribute time_since_previous_visit.



8
9
10
# File 'lib/kameleoon/data/visitor_visits.rb', line 8

def time_since_previous_visit
  @time_since_previous_visit
end

#time_startedObject (readonly)

Returns the value of attribute time_started.



8
9
10
# File 'lib/kameleoon/data/visitor_visits.rb', line 8

def time_started
  @time_started
end

#visit_numberObject (readonly)

Returns the value of attribute visit_number.



8
9
10
# File 'lib/kameleoon/data/visitor_visits.rb', line 8

def visit_number
  @visit_number
end

Instance Method Details

#==(other) ⇒ Object



55
56
57
58
# File 'lib/kameleoon/data/visitor_visits.rb', line 55

def ==(other)
  other.is_a?(VisitorVisits) && (@visit_number == other.visit_number) && (@prev_visits == other.prev_visits) &&
    (@time_started == other.time_started) && (@time_since_previous_visit == other.time_since_previous_visit)
end

#localize(time_started) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/kameleoon/data/visitor_visits.rb', line 19

def localize(time_started)
  time_since_previous_visit = 0
  @prev_visits.each do |visit|
    time_delta = time_started - visit.time_last_activity
    unless time_delta.negative?
      time_since_previous_visit = time_delta
      break
    end
  end
  VisitorVisits.new(
    @prev_visits,
    @visit_number,
    time_started: time_started,
    time_since_previous_visit: time_since_previous_visit
  )
end

#obtain_full_post_text_lineObject



36
37
38
39
40
41
42
43
44
# File 'lib/kameleoon/data/visitor_visits.rb', line 36

def obtain_full_post_text_line
  params = {
    eventType: 'staticData',
    visitNumber: @visit_number,
    timeSincePreviousVisit: @time_since_previous_visit,
    nonce: nonce
  }
  Network::UriHelper.encode_query(params)
end

#to_sObject



46
47
48
49
50
51
52
53
# File 'lib/kameleoon/data/visitor_visits.rb', line 46

def to_s
  'VisitorVisits{' \
  "visit_number:#{@visit_number}," \
  "prev_visits:#{@prev_visits.map(&:to_s)}," \
  "time_started:#{@time_started}," \
  "time_since_previous_visit:#{@time_since_previous_visit}" \
  '}'
end