Module: HasArchive::InstanceMethods
- Defined in:
- lib/has_archive.rb
Instance Method Summary collapse
Instance Method Details
#archive(force: false) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/has_archive.rb', line 37 def archive(force: false) attrs = self.attributes archive = self.class::Archive.new(attrs) archive.archived_at = Time.now archive.save(validate: false) self.destroy(for_real: true) rescue ActiveRecord::RecordNotUnique => e if force self.class::Archive.where(id: archive.id).map(&:destroy) self.archive else Rails.logger.warn "Rescued attempt to archive record with existing key: #{archive.id}." false end end |
#destroy(for_real: false, force: false) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/has_archive.rb', line 53 def destroy(for_real: false, force: false) if !for_real && Rails.configuration.has_archive.override_destroy archive(force: force) else super() end end |