Sha256: 5a9e0c25f893c18f7fa246088a7f0607034f2ae071fa9568fa96859d154572fa
Contents?: true
Size: 1.67 KB
Versions: 4
Compression:
Stored size: 1.67 KB
Contents
# Copyright (C) 2014-2019 MongoDB, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. module Mongo class Error # Exception raised if there are write errors upon executing the bulk # operation. # # @since 2.0.0 class BulkWriteError < Error # @return [ BSON::Document ] result The error result. attr_reader :result # Instantiate the new exception. # # @example Instantiate the exception. # Mongo::Error::BulkWriteError.new(response) # # @param [ Hash ] result A processed response from the server # reporting results of the operation. # # @since 2.0.0 def initialize(result) @result = result # Exception constructor behaves differently for a nil argument and # for no argument. Avoid passing nil explicitly. super(*[build_message]) end private def build_message errors = @result['writeErrors'] return nil unless errors fragment = errors.first(10).map do |error| "#{error['errmsg']} (#{error['code']})" end.join(', ') fragment += '...' if errors.length > 10 fragment end end end end
Version data entries
4 entries across 4 versions & 1 rubygems