Sha256: 4cdff44968709b80128954d69fde48e8a849d1948e16f77c9b5a485befc12615

Contents?: true

Size: 936 Bytes

Versions: 6

Compression:

Stored size: 936 Bytes

Contents

# frozen_string_literal: true

module ActiveRecord::Bitemporal
  module Callbacks
    extend ActiveSupport::Concern

    included do
      define_model_callbacks :bitemporal_create
      define_model_callbacks :bitemporal_update
      define_model_callbacks :bitemporal_destroy
    end

    def destroy(...)
      perform_bitemporal_callbacks? ? run_callbacks(:bitemporal_destroy) { super } : super
    end

    def save_without_bitemporal_callbacks!(...)
      with_bitemporal_option(ignore_bitemporal_callbacks: true) {
        save!(...)
      }
    end

    private

    def _create_record
      perform_bitemporal_callbacks? ? run_callbacks(:bitemporal_create) { super } : super
    end

    def _update_record(*)
      perform_bitemporal_callbacks? ? run_callbacks(:bitemporal_update) { super } : super
    end

    def perform_bitemporal_callbacks?
      bitemporal_option[:ignore_bitemporal_callbacks] != true
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
activerecord-bitemporal-5.3.0 lib/activerecord-bitemporal/callbacks.rb
activerecord-bitemporal-5.2.0 lib/activerecord-bitemporal/callbacks.rb
activerecord-bitemporal-5.1.0 lib/activerecord-bitemporal/callbacks.rb
activerecord-bitemporal-5.0.0 lib/activerecord-bitemporal/callbacks.rb
activerecord-bitemporal-4.3.0 lib/activerecord-bitemporal/callbacks.rb
activerecord-bitemporal-4.2.0 lib/activerecord-bitemporal/callbacks.rb