Class: BSON::Document
- Inherits:
-
Hash
- Object
- Hash
- BSON::Document
- Defined in:
- lib/bson/document.rb
Overview
The specification is: document ::= int32 e_list “x00”
This module provides behaviour for serializing and deserializing entire BSON documents, according to the BSON specification.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Get a value from the document for the provided key.
-
#[]=(key, value) ⇒ Object
Set a value on the document.
-
#delete(key, &block) ⇒ Object
Deletes the key-value pair and returns the value from the document whose key is equal to key.
-
#has_key?(key) ⇒ true, false
(also: #include?, #key?, #member?)
Returns true if the given key is present in the document.
-
#has_value?(value) ⇒ true, false
(also: #value)
Returns true if the given value is present in the document.
-
#initialize(elements = nil) ⇒ Document
constructor
Instantiate a new Document.
-
#merge(other, &block) ⇒ Object
Merge this document with another document, returning a new document in the process.
-
#merge!(other) ⇒ Object
(also: #update)
Merge this document with another document, returning the same document in the process.
Constructor Details
#initialize(elements = nil) ⇒ Document
Instantiate a new Document. Valid parameters for instantiation is a hash only or nothing.
134 135 136 137 |
# File 'lib/bson/document.rb', line 134 def initialize(elements = nil) super() (elements || {}).each_pair{ |key, value| self[key] = value } end |
Instance Method Details
#[](key) ⇒ Object
Get a value from the document for the provided key. Can use string or symbol access, but the fastest will be to always provide a key that is of the same type as the stored keys.
52 53 54 |
# File 'lib/bson/document.rb', line 52 def [](key) super(convert_key(key)) end |
#[]=(key, value) ⇒ Object
Set a value on the document. Will normalize symbol keys into strings.
67 68 69 |
# File 'lib/bson/document.rb', line 67 def []=(key, value) super(convert_key(key), convert_value(value)) end |
#delete(key, &block) ⇒ Object
Deletes the key-value pair and returns the value from the document whose key is equal to key. If the key is not found, returns the default value. If the optional code block is given and the key is not found, pass in the key and return the result of block.
121 122 123 |
# File 'lib/bson/document.rb', line 121 def delete(key, &block) super(convert_key(key), &block) end |
#has_key?(key) ⇒ true, false Also known as: include?, key?, member?
Returns true if the given key is present in the document. Will normalize symbol keys into strings.
82 83 84 |
# File 'lib/bson/document.rb', line 82 def has_key?(key) super(convert_key(key)) end |
#has_value?(value) ⇒ true, false Also known as: value
Returns true if the given value is present in the document. Will normalize symbols into strings.
101 102 103 |
# File 'lib/bson/document.rb', line 101 def has_value?(value) super(convert_value(value)) end |
#merge(other, &block) ⇒ Object
Merge this document with another document, returning a new document in the process.
150 151 152 |
# File 'lib/bson/document.rb', line 150 def merge(other, &block) dup.merge!(other, &block) end |
#merge!(other) ⇒ Object Also known as: update
Merge this document with another document, returning the same document in the process.
165 166 167 168 169 170 171 |
# File 'lib/bson/document.rb', line 165 def merge!(other) other.each_pair do |key, value| value = yield(convert_key(key), self[key], convert_value(value)) if block_given? && self[key] self[key] = value end self end |