Module: ParanoidFu::Paranoid::ClassMethods

Defined in:
lib/paranoid_fu/paranoid.rb

Instance Method Summary collapse

Instance Method Details

#paranoid?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/paranoid_fu/paranoid.rb', line 68

def paranoid?
  self.included_modules.include?(InstanceMethods)
end

#paranoid_fu(options = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/paranoid_fu/paranoid.rb', line 54

def paranoid_fu(options = {})
  unless paranoid? # don't let AR call this twice

    cattr_accessor :deleted_attribute
    self.deleted_attribute = options[:with] || :deleted_at
    alias_method :destroy_without_callbacks!, :destroy_without_callbacks
    class << self
      alias_method :delete_all!, :delete_all
    end
    named_scope :without_deleted, lambda{ {:conditions => without_deleted_conditions} }
    named_scope :only_deleted, lambda{ {:conditions => only_deleted_conditions} }
  end
  include InstanceMethods
end