Sha256: a8d11118a251be37e98af577cb4fd82685ae2dec2660a045e2f9ce4d0f690478
Contents?: true
Size: 983 Bytes
Versions: 2
Compression:
Stored size: 983 Bytes
Contents
require 'active_support' require 'active_model/dirty' require "active_model/attribute_mutation_tracker" require 'active_attr' module ActiveAttr module Dirty extend ActiveSupport::Concern include ActiveModel::Dirty module ClassMethods def attribute!(name, options={}) super(name, options) define_method("#{name}=") do |value| send("#{name}_will_change!") unless value == read_attribute(name) super(value) end end end def attributes_and_changes attributes.select { |attr, key| changed.include? attr } end def mutations_from_database #@mutations_from_database ||= ActiveModel::NullMutationTracker.instance @mutations_from_database ||= defined?(ActiveModel::ForcedMutationTracker) ? ActiveModel::ForcedMutationTracker.new(self) : ActiveModel::NullMutationTracker.instance end def forget_attribute_assignments @attributes if defined?(@attributes) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
openstax_active_force-1.1.1 | lib/active_attr/dirty.rb |
openstax_active_force-1.1.0 | lib/active_attr/dirty.rb |