Module: Trasher
- Defined in:
- lib/trasher.rb,
lib/trasher/version.rb,
lib/trasher/trashable.rb
Defined Under Namespace
Modules: ClassMethods, Trashable
Classes: Error, MissingColumn, TrashedWithoutTrashedBy
Constant Summary
collapse
- VERSION =
'0.1.1'.freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.deleted_at_column?(klass) ⇒ Boolean
27
28
29
|
# File 'lib/trasher.rb', line 27
def self.deleted_at_column?(klass)
klass.columns.map(&:name).include?('deleted_at')
end
|
.deleted_by_column?(klass) ⇒ Boolean
31
32
33
|
# File 'lib/trasher.rb', line 31
def self.deleted_by_column?(klass)
klass.columns.map(&:name).include?('deleted_by_id')
end
|
.included(base) ⇒ Object
20
21
22
23
24
25
|
# File 'lib/trasher.rb', line 20
def self.included(base)
unless base.ancestors.include?(ActiveRecord::Base)
raise "You can only include this if #{base} extends ActiveRecord::Base"
end
base.extend(ClassMethods)
end
|
Instance Method Details
#recover! ⇒ Object
36
37
38
|
# File 'lib/trasher/trashable.rb', line 36
def recover!
_trash(nil, nil)
end
|
#trash!(trashed_by, trashed_at = nil) ⇒ Object
29
30
31
32
33
34
|
# File 'lib/trasher/trashable.rb', line 29
def trash!(trashed_by, trashed_at = nil)
raise TrashedWithoutTrashedBy unless trashed_by.present?
trashed_at ||= DateTime.now
_trash(trashed_at, trashed_by.try(:id))
end
|
#trashed? ⇒ Boolean
25
26
27
|
# File 'lib/trasher/trashable.rb', line 25
def trashed?
deleted_at.present?
end
|