Class: RefererTracking::Tracking

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/referer_tracking/tracking.rb

Instance Method Summary collapse

Instance Method Details

#add_log_line(log_line, save_model: true) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'app/models/referer_tracking/tracking.rb', line 30

def add_log_line(log_line, save_model: true)
  Rails.logger.info("RefererTracking add_log_line to #{trackable_type}.#{trackable_id}: #{log_line}")

  log_line = log_line.to_s.gsub("\n", ' ')
  str = "#{Time.now.utc.to_s(:db)}: #{log_line}\n"
  self.log = log.to_s + str

  save if save_model
end

#first_url_combinedObject



8
9
10
# File 'app/models/referer_tracking/tracking.rb', line 8

def first_url_combined
  cookie_first_url || session_first_url
end

#get_log_lines(regexp) ⇒ Object



40
41
42
43
# File 'app/models/referer_tracking/tracking.rb', line 40

def get_log_lines(regexp)
  lines = log.to_s.lines.find_all{|str| str.match(regexp)}
  lines.collect{|str| [ActiveSupport::TimeZone["UTC"].parse(str), str.split(": ", 2).last.to_s.strip]}
end

#referer_url_combinedObject



11
12
13
# File 'app/models/referer_tracking/tracking.rb', line 11

def referer_url_combined
  cookie_referer_url || session_referer_url
end

#status=(new_status) ⇒ Object



17
18
19
20
21
22
# File 'app/models/referer_tracking/tracking.rb', line 17

def status=(new_status)
  if status != new_status
    write_attribute(:status, new_status)
    add_log_line("status #{new_status}", save_model: false)
  end
end

#update_status(new_status, save_model: true) ⇒ Object



23
24
25
26
27
28
# File 'app/models/referer_tracking/tracking.rb', line 23

def update_status(new_status, save_model: true)
  if status != new_status
    write_attribute(:status, new_status)
    add_log_line("status #{new_status}", save_model: save_model)
  end
end