Class: Persona::AsyncTracker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
lib/persona/async_tracker.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.perform(trackable_type, trackable_id, action, metadata) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/persona/async_tracker.rb', line 13

def self.perform(trackable_type, trackable_id, action, )
  record = trackable_type.constantize.find(trackable_id)
  PersonaEvent.create!(
    trackable: record,
    action:    action,
    metadata:  
  )
end

.track(trackable_type, trackable_id, action, metadata) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/persona/async_tracker.rb', line 5

def self.track(trackable_type, trackable_id, action, )
  if defined?(Sidekiq)
    perform_async(trackable_type, trackable_id, action, )
  else
    perform(trackable_type, trackable_id, action, )
  end
end

Instance Method Details

#perform(trackable_type, trackable_id, action, metadata) ⇒ Object



22
23
24
# File 'lib/persona/async_tracker.rb', line 22

def perform(trackable_type, trackable_id, action, )
  self.class.perform(trackable_type, trackable_id, action, )
end