Module: Caboose::Acts::Paranoid::InstanceMethods
- Defined in:
- lib/caboose/acts/paranoid.rb
Overview
:nodoc:
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
.included(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #deleted? ⇒ Boolean
- #destroy! ⇒ Object
- #destroy_with_callbacks! ⇒ Object
- #destroy_without_callbacks ⇒ Object
- #recover! ⇒ Object
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
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 |