lib/mongoid/persistable.rb in mongoid-8.1.7 vs lib/mongoid/persistable.rb in mongoid-9.0.0

- old
+ new

@@ -1,12 +1,16 @@ # frozen_string_literal: true +# rubocop:todo all require "mongoid/persistable/creatable" require "mongoid/persistable/deletable" require "mongoid/persistable/destroyable" require "mongoid/persistable/incrementable" require "mongoid/persistable/logical" +require "mongoid/persistable/maxable" +require "mongoid/persistable/minable" +require "mongoid/persistable/multipliable" require "mongoid/persistable/poppable" require "mongoid/persistable/pullable" require "mongoid/persistable/pushable" require "mongoid/persistable/renamable" require "mongoid/persistable/savable" @@ -23,10 +27,13 @@ include Creatable include Deletable include Destroyable include Incrementable include Logical + include Maxable + include Minable + include Multipliable include Poppable include Positional include Pullable include Pushable include Renamable @@ -101,11 +108,11 @@ persist_atomic_operations @atomic_context _mongoid_remove_atomic_context_changes end true - rescue Exception => e + rescue StandardError => e _mongoid_reset_atomic_context_changes! if has_own_context raise e ensure _mongoid_pop_atomic_context if has_own_context @@ -165,9 +172,12 @@ # # @return [ true ] true. def post_process_persist(result, options = {}) post_persist unless result == false errors.clear unless performing_validations?(options) + if in_transaction? + Threaded.add_modified_document(_session, self) + end true end # Prepare an atomic persistence operation. Yields an empty hash to be sent # to the update.