Module: PersistentRecord
- Defined in:
- lib/persistent_record.rb,
lib/persistent_record/version.rb
Defined Under Namespace
Modules: Callbacks, Query
Constant Summary
collapse
- VERSION =
'0.1.4'
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(source) ⇒ Object
8
9
10
11
|
# File 'lib/persistent_record.rb', line 8
def self.included(source)
source.extend Query
source.extend Callbacks
end
|
Instance Method Details
#delete ⇒ Object
77
78
79
80
|
# File 'lib/persistent_record.rb', line 77
def delete
return if new_record?
touch_record_deleted_at_column(false)
end
|
#destroy ⇒ Object
Also known as:
discard
66
67
68
69
|
# File 'lib/persistent_record.rb', line 66
def destroy
callbacks_result = run_callbacks(:destroy) { touch_record_deleted_at_column(true) }
callbacks_result ? self : false
end
|
#destroy! ⇒ Object
72
73
74
|
# File 'lib/persistent_record.rb', line 72
def destroy!
discarded? ? super : destroy || raise(ActiveRecord::RecordNotDestroyed)
end
|
#discarded? ⇒ Boolean
93
94
95
|
# File 'lib/persistent_record.rb', line 93
def discarded?
!!send(record_deleted_at_column)
end
|
#restore!(options = {}) ⇒ Object
84
85
86
87
88
89
90
91
|
# File 'lib/persistent_record.rb', line 84
def restore!(options = {})
ActiveRecord::Base.transaction do
run_callbacks(:restore) do
update_column record_deleted_at_column, nil
restore_associated_records if options[:recursive]
end
end
end
|