module BSON::OpenStruct

Injects behaviour for encoding OpenStruct objects using hashes to raw bytes as specified by the BSON spec.

@see bsonspec.org/#/specification

@since 4.2.0

Public Instance Methods

bson_type() click to toggle source

The BSON type for OpenStruct objects is the Hash type of 0x03.

@example Get the bson type.

struct.bson_type

@return [ String ] The character 0x03.

@since 4.2.0

# File lib/bson/open_struct.rb, line 51
def bson_type
  ::Hash::BSON_TYPE
end
to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) click to toggle source

Get the OpenStruct as encoded BSON.

@example Get the OpenStruct object as encoded BSON.

OpenStruct.new({ "field" => "value" }).to_bson

@return [ BSON::ByteBuffer ] The buffer with the encoded object.

@see bsonspec.org/#/specification

@since 4.2.0

# File lib/bson/open_struct.rb, line 35
def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?)
  if Environment.ruby_1_9?
    marshal_dump.dup
  else
    to_h
  end.to_bson(buffer, validating_keys)
end