Module: Utsusemi::ClassMethods

Defined in:
lib/utsusemi/base.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_utsusemi(callback: nil) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/utsusemi/base.rb', line 5

def acts_as_utsusemi(callback: nil)
  after_destroy callback || -> (caller) {
    deleted_class = caller.class.deleted_class
    attributes = caller.attributes.slice(*deleted_class.column_names)
    attributes.merge!(deleted_at: Time.current)
    deleted_class.create(attributes)
  }
end

#deleted_classObject



19
20
21
# File 'lib/utsusemi/base.rb', line 19

def deleted_class
  "deleted_#{table_name}".classify.constantize
end

#only_deletedObject Also known as: deleted



14
15
16
# File 'lib/utsusemi/base.rb', line 14

def only_deleted
  deleted_class.all
end