Sha256: 35cae23063ecbaab6345d6aadd05072b0c0a4bfea4e25c81baab3e105d2e709d
Contents?: true
Size: 801 Bytes
Versions: 28
Compression:
Stored size: 801 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 result end end end end
Version data entries
28 entries across 28 versions & 2 rubygems