Sha256: c85634fa402fb6962cbc53e2cb5af20b5c47724021fa2caade861437344ea6ed
Contents?: true
Size: 1.06 KB
Versions: 20
Compression:
Stored size: 1.06 KB
Contents
module Snaptime module ArHooks def self.before_create(record) if record.natural_id.nil? record.valid_from = Snaptime.current_now ActiveRecord::Base.uncached do record.natural_id = record.class.connection.next_sequence_value(record.class.sequence_name) end end end def self.after_create(record) Snaptime.record_cloned_in_current_tx(record) end def self.before_update(record) return unless Snaptime.record_cloning_enabled? if record.valid_to.nil? && record.changed? && !Snaptime.record_cloned_in_current_tx?(record) record.valid_from = Snaptime.current_now Snaptime::RecordCloner.clone_record!( record, override_attributes: { valid_to: record.valid_from - SMALLEST_TIME_UNIT }, return_record: false ) Snaptime.record_cloned_in_current_tx(record) end end def self.destroy(record) record.deleted = true record.version_is_minor = true if record.respond_to?(:version_is_minor=) record.save! end end end
Version data entries
20 entries across 20 versions & 1 rubygems