Module: BSON::Array
- Defined in:
- lib/bson/array.rb
Overview
Injects behaviour for encoding and decoding arrays to and from raw bytes as specified by the BSON spec.
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- BSON_TYPE =
An array is type 0x04 in the BSON spec.
4.chr.force_encoding(BINARY).freeze
Instance Method Summary collapse
-
#to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) ⇒ String
Get the array as encoded BSON.
-
#to_bson_normalized_value ⇒ Array
Converts the array to a normalized value in a BSON document.
-
#to_bson_object_id ⇒ String
Convert the array to an object id.
Instance Method Details
#to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) ⇒ String
Note:
Arrays are encoded as documents, where the index of the value in the array is the actual key.
Get the array as encoded BSON.
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/bson/array.rb', line 43 def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) position = buffer.length buffer.put_int32(0) each_with_index do |value, index| buffer.put_byte(value.bson_type) buffer.put_cstring(index.to_s) value.to_bson(buffer, validating_keys) end buffer.put_byte(NULL_BYTE) buffer.replace_int32(position, buffer.length - position) end |
#to_bson_normalized_value ⇒ Array
Converts the array to a normalized value in a BSON document.
80 81 82 |
# File 'lib/bson/array.rb', line 80 def to_bson_normalized_value map { |value| value.to_bson_normalized_value } end |