Module: Caboose::Acts::Paranoid::InstanceMethods

Defined in:
lib/caboose/acts/paranoid.rb

Overview

:nodoc:

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

:nodoc:



72
73
74
# File 'lib/caboose/acts/paranoid.rb', line 72

def self.included(base) # :nodoc:
  base.extend ClassMethods
end

Instance Method Details

#deleted? ⇒ Boolean

Returns:

  • (Boolean)


146
147
148
# File 'lib/caboose/acts/paranoid.rb', line 146

def deleted?
  !!read_attribute(:deleted_at)
end

#destroy! ⇒ Object



142
143
144
# File 'lib/caboose/acts/paranoid.rb', line 142

def destroy!
  transaction { destroy_with_callbacks! }
end

#destroy_with_callbacks! ⇒ Object



135
136
137
138
139
140
# File 'lib/caboose/acts/paranoid.rb', line 135

def destroy_with_callbacks!
  return false if callback(:before_destroy) == false
  result = destroy_without_callbacks!
  callback(:after_destroy)
  result
end

#destroy_without_callbacks ⇒ Object



128
129
130
131
132
133
# File 'lib/caboose/acts/paranoid.rb', line 128

def destroy_without_callbacks
  unless new_record?
    self.class.update_all self.class.send(:sanitize_sql, ["#{self.class.deleted_attribute} = ?", self.class.send(:current_time)]), ["#{self.class.primary_key} = ?", id]
  end
  freeze
end

#recover! ⇒ Object



150
151
152
153
# File 'lib/caboose/acts/paranoid.rb', line 150

def recover!
  self.deleted_at = nil
  save!
end