Module: SoftDelete

Extended by:
ActiveSupport::Concern
Defined in:
lib/soft_delete.rb,
lib/soft_delete/version.rb

Constant Summary collapse

VERSION =
"0.1.1"

Instance Method Summary collapse

Instance Method Details

#delete(type = :soft) ⇒ Object

“remove” record from database but don’t run callbacks



14
15
16
17
18
19
20
# File 'lib/soft_delete.rb', line 14

def delete(type = :soft)
  if type == :soft
    touch(:deleted_at)
  elsif type == :hard
    super()
  end
end

#delete!Object



22
23
24
# File 'lib/soft_delete.rb', line 22

def delete!
  delete(:hard)
end

#deleted?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/soft_delete.rb', line 26

def deleted?
  deleted_at.present?
end

#destroy(type = :soft) ⇒ Object

“remove” record from database and run callbacks



31
32
33
34
35
36
37
# File 'lib/soft_delete.rb', line 31

def destroy(type = :soft)
  if type == :soft
    touch(:deleted_at)
  elsif type == :hard
    super()
  end
end

#destroy!Object



39
40
41
# File 'lib/soft_delete.rb', line 39

def destroy!
  destroy(:hard)
end

#restoreObject



43
44
45
# File 'lib/soft_delete.rb', line 43

def restore
  update_attributes(deleted_at: nil)
end