Sha256: 3cfa51552ebaab8e54272371e52b96d18d63eea16a2c638c6e24bb914b66a58d
Contents?: true
Size: 1.1 KB
Versions: 5
Compression:
Stored size: 1.1 KB
Contents
# encoding: UTF-8 module MongoMapper module Plugins module Dirty extend ActiveSupport::Concern include ::ActiveModel::Dirty module ClassMethods def create_accessors_for(key) super.tap do define_attribute_methods([key.name]) end end end def save_to_collection(*) super.tap do changes_applied end end def reload! super.tap do clear_changes_information end end private def write_key(key_name, value) key_name = unalias_key(key_name) if !keys.key?(key_name) super else # find the MongoMapper::Plugins::Keys::Key _, key = keys.detect { |n, v| n == key_name } # typecast to the new value old_value = read_key(key_name) new_value = key.set(value) # only mark changed if really changed value (after typecasting) unless old_value == new_value attribute_will_change!(key_name) end super end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems