Module: Abstractor::Methods::Models::SoftDelete

Defined in:
lib/abstractor/methods/models/soft_delete.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
# File 'lib/abstractor/methods/models/soft_delete.rb', line 5

def self.included(base)
  attr_accessor :soft_delete
  base.send(:scope, :not_deleted, -> { base.where(:deleted_at => nil) })
end

Instance Method Details

#deleted?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/abstractor/methods/models/soft_delete.rb', line 29

def deleted?
  !deleted_at.blank?
end

#process_soft_deleteObject



10
11
12
# File 'lib/abstractor/methods/models/soft_delete.rb', line 10

def process_soft_delete
  self.deleted_at = Time.zone.now
end

#soft_deleteObject



20
21
22
# File 'lib/abstractor/methods/models/soft_delete.rb', line 20

def soft_delete
  !self.deleted_at.blank?
end

#soft_delete!Object



24
25
26
27
# File 'lib/abstractor/methods/models/soft_delete.rb', line 24

def soft_delete!
  process_soft_delete
  save!
end

#soft_delete=(removed) ⇒ Object



14
15
16
17
18
# File 'lib/abstractor/methods/models/soft_delete.rb', line 14

def soft_delete=(removed)
  if (removed.is_a?(TrueClass) || removed.to_s == 't' || removed.to_s == '1')
    process_soft_delete
  end
end