lib/mongoid/timestamps/updated.rb in mongoid-2.3.5 vs lib/mongoid/timestamps/updated.rb in mongoid-2.4.0

- old
+ new

@@ -6,21 +6,31 @@ module Updated extend ActiveSupport::Concern included do field :updated_at, :type => Time, :versioned => false - set_callback :save, :before, :set_updated_at, :if => Proc.new { |doc| - doc.timestamping? && (doc.new_record? || doc.changed?) - } + set_callback :save, :before, :set_updated_at, :if => :able_to_set_updated_at? end # Update the updated_at field on the Document to the current time. # This is only called on create and on save. # # @example Set the updated at time. # person.set_updated_at def set_updated_at self.updated_at = Time.now.utc unless updated_at_changed? + end + + # Is the updated timestamp able to be set? + # + # @example Can the timestamp be set? + # document.able_to_set_updated_at? + # + # @return [ true, false ] If the timestamp can be set. + # + # @since 2.4.0 + def able_to_set_updated_at? + !frozen? && timestamping? && (new_record? || changed?) end end end end