Sha256: 2073d231e9c1f761195b196f05fef239bf0cf477d329f5870f8a0b2133659a9f
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
module ExpectedBehavior module ActsAsArchivalActiveRecordMethods def self.included(base) base.extend ARClassMethods base.send :include, ARInstanceMethods end module ARClassMethods def archival? included_modules.include?(ExpectedBehavior::ActsAsArchival::InstanceMethods) end # rubocop:disable Style/PredicateName def is_archival? ActiveSupport::Deprecation.warn(".is_archival? is deprecated in favor of .archival?") archival? end # rubocop:enable Style/PredicateName end module ARInstanceMethods def archival? self.class.archival? end # rubocop:disable Style/PredicateName def is_archival? ActiveSupport::Deprecation.warn("#is_archival? is deprecated in favor of #archival?") archival? end # rubocop:enable Style/PredicateName end module ARRelationMethods def archive_all! error_message = "The #{klass} must implement 'act_on_archivals' in order to call `archive_all!`" raise NotImplementedError.new(error_message) unless archival? head_archive_number = Digest::MD5.hexdigest("#{klass}#{Time.now.utc.to_i}") each { |record| record.archive!(head_archive_number) }.tap { reset } end def unarchive_all! error_message = "The #{klass} must implement 'act_on_archivals' in order to call `unarchive_all!`" raise NotImplementedError.new(error_message) unless archival? each(&:unarchive!).tap { reset } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
acts_as_archival-1.4.0 | lib/expected_behavior/acts_as_archival_active_record_methods.rb |