Module: BSON::Hash
- Defined in:
- lib/bson/hash.rb
Overview
Injects behaviour for encoding and decoding hashes to and from raw bytes as specified by the BSON spec.
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- BSON_TYPE =
An hash (embedded document) is type 0x03 in the BSON spec.
3.chr.force_encoding(BINARY).freeze
Instance Method Summary collapse
-
#to_bson(buffer = ByteBuffer.new) ⇒ String
Get the hash as encoded BSON.
-
#to_bson_normalized_value ⇒ BSON::Document
Converts the hash to a normalized value in a BSON document.
Instance Method Details
#to_bson(buffer = ByteBuffer.new) ⇒ String
Get the hash as encoded BSON.
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/bson/hash.rb', line 40 def to_bson(buffer = ByteBuffer.new) position = buffer.length buffer.put_int32(0) each do |field, value| buffer.put_byte(value.bson_type) buffer.put_cstring(field.to_bson_key) value.to_bson(buffer) end buffer.put_byte(NULL_BYTE) buffer.replace_int32(position, buffer.length - position) end |
#to_bson_normalized_value ⇒ BSON::Document
Converts the hash to a normalized value in a BSON document.
60 61 62 |
# File 'lib/bson/hash.rb', line 60 def to_bson_normalized_value Document.new(self) end |