module UserTrackers
Constants
- TRACKERS
Attributes
options[RW]
Public Class Methods
_track(params)
click to toggle source
# File lib/user_trackers.rb, line 34 def self._track(params) if !ignore_event? params['event_name'] if !options[Rails.env.to_sym][:db] || !ignore_event?(params['event_name'], :db) UserEvent.create( anonymous_id: params['anonymous_id'], event_name:'logged_in_as', event_attributes:{ user_id: params['user_id'] } ) if params['user_logged_in'] UserEvent.create(params.except('user_logged_in')) end trackers.each do |tracker| if options[Rails.env.to_sym][tracker.to_sym] if !ignore_event?(params['event_name'], tracker.to_sym) eval("#{tracker.capitalize}Tracker.track(params)") end end end end end
ignore_event?(event_name, tracker = nil)
click to toggle source
# File lib/user_trackers.rb, line 29 def self.ignore_event?(event_name, tracker = nil) ignore_events = tracker ? options[Rails.env.to_sym][tracker][:ignore_events] || [] : options[Rails.env.to_sym][:ignore_events] || [] ignore_events.include?(event_name) || ignore_events.include?('*') end
track(params, session = nil)
click to toggle source
# File lib/user_trackers.rb, line 54 def self.track(params, session = nil) if session if params[:user_id] && session['anonymous_id'] params[:user_logged_in] = true params[:anonymous_id] = session['anonymous_id'] session.delete('anonymous_id') elsif !params[:user_id] session['anonymous_id'] ||= UUID.new.generate params[:anonymous_id] = session['anonymous_id'] end end params[:anonymous_id] ||= UUID.new.generate # for usage with sidekiq and resque params = params.as_json if options[Rails.env.to_sym][:queue_adapter] == 'sidekiq' SidekiqWorker.perform_async(params) elsif options[Rails.env.to_sym][:queue_adapter] == 'resque' Resque.enqueue(RescueWorker, params) else _track(params) end end
trackers()
click to toggle source
# File lib/user_trackers.rb, line 21 def self.trackers TRACKERS end