class BSON::DbPointer
Injects behaviour for encoding and decoding DBPointer values to and from raw bytes as specified by the BSON
spec.
Constants
- BSON_TYPE
A DBPointer is type 0x0C in the
BSON
spec.
Attributes
Return the DbPointer’s id.
@return [ BSON::ObjectId
] The id of the DbPointer
instance
Return the collection name.
@return [ String
] The database collection name.
Public Class Methods
Deserialize a DBPointer from BSON
.
@param [ ByteBuffer
] buffer The byte buffer. @param [ Hash
] options
@option options [ nil | :bson ] :mode Decoding mode to use.
@return [ BSON::DbPointer
] The decoded DBPointer.
@see bsonspec.org/#/specification
# File lib/bson/db_pointer.rb, line 97 def self.from_bson(buffer, **options) ref = buffer.get_string id = if options.empty? ObjectId.from_bson(buffer) else ObjectId.from_bson(buffer, **options) end new(ref, id) end
Create a new DBPointer object.
@param [ String
] ref The database collection name. @param [ BSON::ObjectId
] id The DBPointer id.
# File lib/bson/db_pointer.rb, line 33 def initialize(ref, id) @ref = ref @id = id end
Public Instance Methods
Determine if this DBPointer object is equal to another object.
@param [ Object
] other The object to compare against.
@return [ true | false ] If the objects are equal
# File lib/bson/db_pointer.rb, line 53 def ==(other) return false unless other.is_a?(DbPointer) ref == other.ref && id == other.id end
Converts this object to a representation directly serializable to Extended JSON
(github.com/mongodb/specifications/blob/master/source/extended-json.rst).
@return [ Hash
] The extended json representation.
# File lib/bson/db_pointer.rb, line 72 def as_extended_json(**_options) { '$dbPointer' => { "$ref" => ref, '$id' => id.as_extended_json } } end
Return a representation of the object for use in application-level JSON
serialization. Since BSON::DbPointer
is used exclusively in BSON-related contexts, this method returns the canonical Extended JSON
representation.
@return [ Hash
] The extended json representation.
# File lib/bson/db_pointer.rb, line 64 def as_json(*_args) as_extended_json end
Encode the DBPointer.
@return [ BSON::ByteBuffer
] The buffer with the encoded object.
@see bsonspec.org/#/specification
# File lib/bson/db_pointer.rb, line 81 def to_bson(buffer = ByteBuffer.new) buffer.put_string(ref) id.to_bson(buffer) buffer end