Class: Sojourn::Tracker

Inherits:
Object
  • Object
show all
Defined in:
lib/sojourn/tracker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ctx) ⇒ Tracker

Returns a new instance of Tracker.



9
10
11
# File 'lib/sojourn/tracker.rb', line 9

def initialize(ctx)
  self.ctx = ctx
end

Instance Attribute Details

#ctxObject

Returns the value of attribute ctx.



6
7
8
# File 'lib/sojourn/tracker.rb', line 6

def ctx
  @ctx
end

Instance Method Details

#sojourning!Object



20
21
22
23
24
# File 'lib/sojourn/tracker.rb', line 20

def sojourning!
  return unless Sojourn.config.tracking_enabled && Sojourn.tables_exist?
  track!('!sojourning') if sojourning?
  track_user_change! if user_changed?
end

#track!(event_name, properties = {}, user_id = current_user_id) ⇒ Object



13
14
15
16
17
18
# File 'lib/sojourn/tracker.rb', line 13

def track!(event_name, properties = {}, user_id = current_user_id)
  return unless Sojourn.tables_exist?
  properties = default_event_properties.merge(properties)
  Event.create! sojourner_uuid: sojourner_uuid, name: event_name,
                properties: properties, user_id: user_id
end

#track_user_change!Object



26
27
28
29
30
# File 'lib/sojourn/tracker.rb', line 26

def track_user_change!
  return unless user_changed?
  track!('!logged_out', {}, session.user_id) if session.user_id
  track!('!logged_in', {}, current_user_id) if current_user_id
end

#update_session!Object



32
33
34
35
# File 'lib/sojourn/tracker.rb', line 32

def update_session!
  session.sojourner_uuid ||= sojourner_uuid
  session.user_id = current_user_id
end