Sha256: 0cf7b93cdd8dbdd4c65dc8165a6ae7b326ae4b189985f2a807c07eb335b5e74f
Contents?: true
Size: 837 Bytes
Versions: 3
Compression:
Stored size: 837 Bytes
Contents
# encoding: utf-8 module Mongoid module Persistence # Contains common logic for upsert operations. module Upsertion # Wrap all the common upsert logic for root docments. # # @example Execute common upsert logic. # prepare do |doc| # collection.find({ :_id => 1 }).upsert({ name: "test" }, [ :upsert ]) # end # # @param [ Proc ] block The block to call. # # @return [ true, false ] If the save passed or not. # # @since 3.0.0 def prepare(&block) return false if validating? && document.invalid?(:upsert) result = document.run_callbacks(:upsert) do yield(document); true end document.post_persist unless result == false document.new_record = false result end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mongoid-3.1.7 | lib/mongoid/persistence/upsertion.rb |
mongoid-3.1.6 | lib/mongoid/persistence/upsertion.rb |
mongoid-3.1.5 | lib/mongoid/persistence/upsertion.rb |