Sha256: b5ae97bef26a0fa627e5c392cb3f4aa08fa5ae3c2959dde7043b455abfa184c1

Contents?: true

Size: 945 Bytes

Versions: 111

Compression:

Stored size: 945 Bytes

Contents

module Acfs
  module Model

    # Thin wrapper around ActiveModel::Dirty
    #
    module Dirty
      extend ActiveSupport::Concern
      include ActiveModel::Dirty

      # @api private
      #
      # Resets all changes. Does not touch previous changes.
      #
      def reset_changes
        changed_attributes.clear
      end

      # @api private
      #
      # Save current changes as previous changes and reset
      # current one.
      #
      def swap_changes
        @previously_changed = changes
        reset_changes
      end

      # @api private
      #
      def save!(*)
        super.tap { |_| swap_changes }
      end

      # @api private
      #
      def loaded!
        reset_changes
        super
      end

      # @api private
      #
      def write_raw_attribute(name, value, opts = {}) # :nodoc:
        attribute_will_change! name if opts[:change].nil? or opts[:change]
        super
      end
    end
  end
end

Version data entries

111 entries across 111 versions & 1 rubygems

Version Path
acfs-0.42.0 lib/acfs/model/dirty.rb
acfs-0.41.1 lib/acfs/model/dirty.rb
acfs-0.41.1.beta1 lib/acfs/model/dirty.rb
acfs-0.41.0 lib/acfs/model/dirty.rb
acfs-0.40.1.rc1 lib/acfs/model/dirty.rb
acfs-0.40.0 lib/acfs/model/dirty.rb
acfs-0.39.1 lib/acfs/model/dirty.rb
acfs-0.39.0 lib/acfs/model/dirty.rb
acfs-0.38.0 lib/acfs/model/dirty.rb
acfs-0.37.0.1.b295 lib/acfs/model/dirty.rb
acfs-0.37.0 lib/acfs/model/dirty.rb
acfs-0.36.0.1.b293 lib/acfs/model/dirty.rb
acfs-0.36.0 lib/acfs/model/dirty.rb
acfs-0.35.0.1.b291 lib/acfs/model/dirty.rb
acfs-0.35.0 lib/acfs/model/dirty.rb
acfs-0.34.1.1.b289 lib/acfs/model/dirty.rb
acfs-0.34.1 lib/acfs/model/dirty.rb
acfs-0.34.0.1.b288 lib/acfs/model/dirty.rb
acfs-0.34.0.1.b287 lib/acfs/model/dirty.rb
acfs-0.34.0.1.b286 lib/acfs/model/dirty.rb