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.25.0.1.b227 lib/acfs/model/dirty.rb
acfs-0.25.0.1.b226 lib/acfs/model/dirty.rb
acfs-0.25.0.1.b225 lib/acfs/model/dirty.rb
acfs-0.25.0.1.b223 lib/acfs/model/dirty.rb
acfs-0.25.0.1.b221 lib/acfs/model/dirty.rb
acfs-0.25.0.1.b217 lib/acfs/model/dirty.rb
acfs-0.25.0 lib/acfs/model/dirty.rb
acfs-0.24.0.1.b216 lib/acfs/model/dirty.rb
acfs-0.24.0.1.b214 lib/acfs/model/dirty.rb
acfs-0.24.0.1.b212 lib/acfs/model/dirty.rb
acfs-0.24.0.b210 lib/acfs/model/dirty.rb
acfs-0.24.0 lib/acfs/model/dirty.rb
acfs-0.23.2.b209 lib/acfs/model/dirty.rb
acfs-0.23.2.b208 lib/acfs/model/dirty.rb
acfs-0.23.2.b206 lib/acfs/model/dirty.rb
acfs-0.23.2.b205 lib/acfs/model/dirty.rb
acfs-0.23.2.b204 lib/acfs/model/dirty.rb
acfs-0.23.2.b203 lib/acfs/model/dirty.rb
acfs-0.23.2.b200 lib/acfs/model/dirty.rb
acfs-0.23.2.b199 lib/acfs/model/dirty.rb