diff options
Diffstat (limited to 'activemodel/lib/active_model')
| -rw-r--r-- | activemodel/lib/active_model/dirty.rb | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/activemodel/lib/active_model/dirty.rb b/activemodel/lib/active_model/dirty.rb index fad4de9df5..90047c3c12 100644 --- a/activemodel/lib/active_model/dirty.rb +++ b/activemodel/lib/active_model/dirty.rb @@ -119,6 +119,9 @@ module ActiveModel      extend ActiveSupport::Concern      include ActiveModel::AttributeMethods +    OPTION_NOT_GIVEN = Object.new # :nodoc: +    private_constant :OPTION_NOT_GIVEN +      included do        attribute_method_suffix '_changed?', '_change', '_will_change!', '_was'        attribute_method_suffix '_previously_changed?', '_previous_change' @@ -174,13 +177,10 @@ module ActiveModel      end      # Handles <tt>*_changed?</tt> for +method_missing+. -    def attribute_changed?(attr, options = nil) #:nodoc: -      result = changes_include?(attr) -      if options -        result &&= options[:to] == __send__(attr) if options.key?(:to) -        result &&= options[:from] == changed_attributes[attr] if options.key?(:from) -      end -      result +    def attribute_changed?(attr, from: OPTION_NOT_GIVEN, to: OPTION_NOT_GIVEN) # :nodoc: +      !!changes_include?(attr) && +        (to == OPTION_NOT_GIVEN || to == __send__(attr)) && +        (from == OPTION_NOT_GIVEN || from == changed_attributes[attr])      end      # Handles <tt>*_was</tt> for +method_missing+. @@ -189,7 +189,7 @@ module ActiveModel      end      # Handles <tt>*_previously_changed?</tt> for +method_missing+. -    def attribute_previously_changed?(attr, options = {}) #:nodoc: +    def attribute_previously_changed?(attr) #:nodoc:        previous_changes_include?(attr)      end  | 
