module BSON::Array::ClassMethods

Public Instance Methods

from_bson(buffer) click to toggle source

Deserialize the array from BSON.

@param [ ByteBuffer ] buffer The byte buffer.

@return [ Array ] The decoded array.

@see bsonspec.org/#/specification

@since 2.0.0

# File lib/bson/array.rb, line 99
def from_bson(buffer)
  if buffer.respond_to?(:get_array)
    buffer.get_array
  else
    array = new
    buffer.get_int32 # throw away the length
    while (type = buffer.get_byte) != NULL_BYTE
      buffer.get_cstring
      array << BSON::Registry.get(type).from_bson(buffer)
    end
    array
  end
end