class Audited::Deferrable::Base

Public Class Methods

from_arguments(object_class_name, object_id, user_class_name, user_id, attrs) click to toggle source
# File lib/audited/deferrable/base.rb, line 21
def self.from_arguments(object_class_name, object_id, user_class_name, user_id, attrs)
  object = object_class_name.constantize.find(object_id) rescue nil
  user = user_class_name.constantize.find(user_id) rescue nil if user_class_name
  new(object, user, attrs)
end
new(object, user, attrs) click to toggle source
# File lib/audited/deferrable/base.rb, line 5
def initialize(object, user, attrs)
  @object = object
  @user = user
  @attrs = attrs
end

Public Instance Methods

arguments() click to toggle source
# File lib/audited/deferrable/base.rb, line 11
def arguments
  [
    @object.class.name, 
    @object.id, 
    @user.try(:class).try(:name),
    @user.try(:id),
    @attrs
  ]
end
defer() click to toggle source
# File lib/audited/deferrable/base.rb, line 27
def defer
  raise ArgumentError, "Implementation Required"
end
work() click to toggle source
# File lib/audited/deferrable/base.rb, line 31
def work
  if @object
    Audited.audit_class.as_user(@user) do
      @object.send(:write_audit_without_deferrable, @attrs)
    end
  else
    false
  end
end