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
Public Class Methods
Source
# File lib/bson/db_pointer.rb, line 98 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
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.
Source
# File lib/bson/db_pointer.rb, line 32 def initialize(ref, id) @ref = ref @id = id end
Create a new DBPointer object.
@param [ String
] ref The database collection name. @param [ BSON::ObjectId
] id The DBPointer id.
Public Instance Methods
Source
# File lib/bson/db_pointer.rb, line 52 def ==(other) return false unless other.is_a?(DbPointer) ref == other.ref && id == other.id end
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
Source
# File lib/bson/db_pointer.rb, line 73 def as_extended_json(**options) {'$dbPointer' => { "$ref" => ref, '$id' => id.as_extended_json }} 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.
Source
# File lib/bson/db_pointer.rb, line 62 def as_json(*args) 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.
Source
# File lib/bson/db_pointer.rb, line 82 def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) buffer.put_string(ref) id.to_bson(buffer, validating_keys) buffer end
Encode the DBPointer.
@return [ BSON::ByteBuffer
] The buffer with the encoded object.