module AuditModel::Models::Helpers::ClassMethods
Public Instance Methods
auditable(options = {})
click to toggle source
# File lib/audit_model/models/helpers.rb, line 7 def auditable(options = {}) send :include, InstanceMethods class_attribute :audit_enabled, instance_writer: false options[:on] ||= [:create, :update, :destroy] setup_callbacks options[:on] setup_model setup_associations send :enable_audit end
disable_audit()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 26 def disable_audit self.audit_enabled = false end
enable_audit()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 30 def enable_audit self.audit_enabled = true end
without_audit() { || ... }
click to toggle source
# File lib/audit_model/models/helpers.rb, line 18 def without_audit cache = audit_enabled disable_audit yield ensure enable_audit if cache end
Private Instance Methods
audit_class()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 62 def audit_class "#{name}Audit" end
callback_on_create()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 50 def callback_on_create after_create :audit_on_create end
callback_on_destroy()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 58 def callback_on_destroy after_destroy :audit_on_destroy end
callback_on_update()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 54 def callback_on_update before_update :audit_on_update end
setup_associations()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 45 def setup_associations has_many :revisions, as: :model, class_name: "AuditModel::Models::Revision" has_many :audits, through: :revisions, source: :audit, source_type: audit_class end
setup_callbacks(options_on = [])
click to toggle source
# File lib/audit_model/models/helpers.rb, line 35 def setup_callbacks(options_on = []) options_on.each do |option| send "callback_on_#{option}" end end
setup_model()
click to toggle source
# File lib/audit_model/models/helpers.rb, line 41 def setup_model Object.const_set audit_class, Class.new(Models::Base) end