Module: SoftDestroyable::InstanceMethods

Defined in:
lib/soft_destroyable.rb

Instance Method Summary collapse

Instance Method Details

#after_soft_destroyObject

override



130
131
132
# File 'lib/soft_destroyable.rb', line 130

def after_soft_destroy
  # empty
end

#before_destroy!Object

override



135
136
137
# File 'lib/soft_destroyable.rb', line 135

def before_destroy!
  # empty
end

#before_soft_destroyObject

override



125
126
127
# File 'lib/soft_destroyable.rb', line 125

def before_soft_destroy
  # empty
end

#destroyObject

overrides the normal ActiveRecord::Transactions#destroy. can be recovered with revive



92
93
94
95
96
97
# File 'lib/soft_destroyable.rb', line 92

def destroy
  before_soft_destroy
  result = soft_destroy
  after_soft_destroy
  result
end

#destroy!Object

not a recoverable operation



100
101
102
103
104
105
106
# File 'lib/soft_destroyable.rb', line 100

def destroy!
  transaction do
    before_destroy!
    cascade_destroy!
    delete
  end
end

#restrict_dependenciesObject



120
121
122
# File 'lib/soft_destroyable.rb', line 120

def restrict_dependencies
  self.class.restrict_dependencies
end

#reviveObject

un-does the effect of destroy. Does not undo nullify on dependents



109
110
111
112
113
114
# File 'lib/soft_destroyable.rb', line 109

def revive
  transaction do
    cascade_revive
    update_attributes(:deleted_at => nil, :deleted => false)
  end
end

#soft_dependenciesObject



116
117
118
# File 'lib/soft_destroyable.rb', line 116

def soft_dependencies
  self.class.soft_dependencies
end