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.