15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/espinita/auditor_behavior.rb', line 15
def auditable(options = {})
self.audit_callbacks = []
self.audit_callbacks << options[:on] unless options[:on].blank?
self.audit_callbacks.flatten!
after_create :audit_create if self.audit_callbacks.blank? || self.audit_callbacks.include?(:create)
before_update :audit_update if self.audit_callbacks.blank? || self.audit_callbacks.include?(:update)
before_destroy :audit_destroy if self.audit_callbacks.blank? || self.audit_callbacks.include?(:destroy)
self.excluded_cols = (@@default_excluded)
if options[:only]
options[:only] = [options[:only]].flatten.map { |x| x.to_s }
self.excluded_cols = (self.column_names - options[:only] )
end
if options[:except]
options[:except] = [options[:except]].flatten.map { |x| x.to_s }
self.excluded_cols = (@@default_excluded) + options[:except]
end
has_many :audits, :as => :auditable, :class_name => Espinita::Audit.name
accepts_nested_attributes_for :audits
end
|