module ActiveAudit::Logger

Attributes

audit_extras[RW]
audit_user_id[RW]

Public Class Methods

loggable_event(event) click to toggle source
# File lib/active_audit/logger.rb, line 25
def self.loggable_event(event)
  self.loggable_events.merge! event
end

Public Instance Methods

log_activity_on_create() click to toggle source
# File lib/active_audit/logger.rb, line 34
def log_activity_on_create
  self.class.loggable_events.each do |k,v|
    next unless k.eql?(:create)
    if v.eql?(true)
      log_event k.to_s
    elsif v.is_a?(Array)
      v.each do |field|
        if field.is_a?(Hash) and self.send(field.keys.first).eql?(field.values.first)
          log_event(k.to_s) and break
        elsif field.is_a?(Symbol) and self.send(field.to_s)
          log_event(k.to_s) and break
        end
      end
    end
  end
end
log_activity_on_destroy() click to toggle source
# File lib/active_audit/logger.rb, line 68
def log_activity_on_destroy
  self.class.loggable_events.each do |k,v|
    next unless k.eql?(:destroy)
    log_event k.to_s
  end
end
log_activity_on_update() click to toggle source
# File lib/active_audit/logger.rb, line 51
def log_activity_on_update
  self.class.loggable_events.each do |k,v|
    next if [:create,:destroy].include?(k)
    if k.eql?(:update) and v.eql?(true)
      log_event k.to_s
    elsif v.is_a?(Array)
      v.each do |field|
        if field.is_a?(Hash) and self.send("#{field.keys.first}_changed?") and self.send(field.keys.first).eql?(field.values.first)
          log_event(k.to_s) and break
        elsif field.is_a?(Symbol) and self.send("#{field}_changed?")
          log_event(k.to_s) and break
        end
      end
    end
  end
end

Private Instance Methods

log_event(activity) click to toggle source
# File lib/active_audit/logger.rb, line 29
def log_event(activity)
  ActiveAudit::Audit.create obj_id: id, obj_type: self.class.to_s, user_id: audit_user_id, activity: activity, extras: audit_extras
end