module Samsara::Model

Public Class Methods

is_audited() click to toggle source
# File lib/samsara/model.rb, line 9
def self.is_audited
  @is_audited = true

  has_many :auditing_revisions, class_name: Samsara.revision_class_name, as: :subject

  after_create  :audit_create
  after_update  :audit_update,  if: :changed?
  after_destroy :audit_destroy
end
is_audited?() click to toggle source
# File lib/samsara/model.rb, line 5
def self.is_audited?
  @is_audited || false
end

Public Instance Methods

audit_create() click to toggle source
# File lib/samsara/model.rb, line 20
def audit_create
  create_audit :create
end
audit_destroy() click to toggle source
# File lib/samsara/model.rb, line 28
def audit_destroy
  create_audit :destroy
end
audit_update() click to toggle source
# File lib/samsara/model.rb, line 24
def audit_update
  create_audit :update
end
create_audit(action) click to toggle source
# File lib/samsara/model.rb, line 32
def create_audit(action)
  return unless Samsara.active?
  Samsara.revision_class.new do |a|
    a.action  = action
    a.subject = self
    a.context = Samsara.current_context
    a.modified_attributes = self.attributes
    a.original_attributes = self.changed_attributes
  end.save
end