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 31 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 51 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).
@option options [ true | false ] :relaxed Whether to produce relaxed
extended JSON representation.
@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
Get the DBPointer as JSON hash data
@return [ Hash ] The DBPointer as a JSON hash.
@deprecated Use #as_extended_json instead.
# File lib/bson/db_pointer.rb, line 61 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, validating_keys = Config.validating_keys?) buffer.put_string(ref) id.to_bson(buffer, validating_keys) buffer end