Sha256: 297d94814fcb06bb17f2b5a42077abe043ea18391238383ec84dd0814fe145ad

Contents?: true

Size: 1.09 KB

Versions: 20

Compression:

Stored size: 1.09 KB

Contents

module Snaptime
  module Versioned
    extend ActiveSupport::Concern

    include Scopes
    include Relations

    module ClassMethods
      def delete(*_args)
        fail Exceptions::DeleteMethodsAreNotAvailable
      end

      def delete_all(*_args)
        fail Exceptions::DeleteMethodsAreNotAvailable
      end

      def versioned?
        true
      end
    end

    def _run_create_callbacks(*args, &block)
      super do
        ArHooks.before_create(self)
        yield
        ArHooks.after_create(self)
      end
    end

    # To make sure our before_update always runs after all other before_update
    # methods, we override {_run_update_callbacks}. This prevents cases where an
    # after_update callback changes the record after it has already been
    # detected as no-changed. In this case, no shadow clone would be created.
    def _run_update_callbacks(*args, &block)
      super do
        ArHooks.before_update(self)
        yield
      end
    end

    def destroy
      ArHooks.destroy(self)
    end

    def delete
      fail Exceptions::DeleteMethodsAreNotAvailable
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
snaptime-22.0.0 lib/snaptime/versioned.rb
snaptime-21.0.0 lib/snaptime/versioned.rb
snaptime-0.3.0 lib/snaptime/versioned.rb
snaptime-0.2.0 lib/snaptime/versioned.rb
snaptime-0.0.20 lib/snaptime/versioned.rb
snaptime-0.0.19 lib/snaptime/versioned.rb
snaptime-0.0.18 lib/snaptime/versioned.rb
snaptime-0.0.17 lib/snaptime/versioned.rb
snaptime-0.0.16 lib/snaptime/versioned.rb
snaptime-0.0.15 lib/snaptime/versioned.rb
snaptime-0.0.14 lib/snaptime/versioned.rb
snaptime-0.0.13 lib/snaptime/versioned.rb
snaptime-0.0.12 lib/snaptime/versioned.rb
snaptime-0.0.11 lib/snaptime/versioned.rb
snaptime-0.0.10 lib/snaptime/versioned.rb
snaptime-0.0.9 lib/snaptime/versioned.rb
snaptime-0.0.8 lib/snaptime/versioned.rb
snaptime-0.0.7 lib/snaptime/versioned.rb
snaptime-0.0.6 lib/snaptime/versioned.rb
snaptime-0.0.1 lib/snaptime/versioned.rb