Module: Mongo::Protocol::Serializers::Document Private

Defined in:
lib/mongo/protocol/serializers.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

MongoDB wire protocol serialization strategy for a BSON Document.

Serializes and de-serializes a single document.

Class Method Summary collapse

Class Method Details

.deserialize(buffer) ⇒ Hash

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deserializes a document from the IO stream

Parameters:

  • buffer (String)

    Buffer containing the BSON encoded document.

Returns:

  • (Hash)

    The decoded BSON document.



174
175
176
# File 'lib/mongo/protocol/serializers.rb', line 174

def self.deserialize(buffer)
  BSON::Document.from_bson(buffer)
end

.serialize(buffer, value, max_bson_size = nil, validating_keys = BSON::Config.validating_keys?) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Serializes a document into the buffer

Parameters:

  • buffer (String)

    Buffer to receive the BSON encoded document.

  • value (Hash)

    Document to serialize as BSON.

Returns:

  • (String)

    Buffer with serialized value.



161
162
163
164
165
166
167
# File 'lib/mongo/protocol/serializers.rb', line 161

def self.serialize(buffer, value, max_bson_size = nil, validating_keys = BSON::Config.validating_keys?)
  start_size = buffer.length
  value.to_bson(buffer, validating_keys)
  if max_bson_size && buffer.length - start_size > max_bson_size
    raise Error::MaxBSONSize.new(max_bson_size)
  end
end

.size_limited?true

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Whether there can be a size limit on this type after serialization.

Returns:

  • (true)

    Documents can be size limited upon serialization.

Since:

  • 2.0.0



183
184
185
# File 'lib/mongo/protocol/serializers.rb', line 183

def self.size_limited?
  true
end