bson 4.3.0.beta → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/bson/array.rb +1 -1
- data/lib/bson/document.rb +20 -0
- data/lib/bson/string.rb +1 -1
- data/lib/bson/version.rb +1 -1
- data/spec/bson/document_spec.rb +23 -1
- data/spec/spec_helper.rb +0 -1
- metadata +51 -51
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b2cdf98517b40720fa4e2cdfaae83903ac8d1907
|
|
4
|
+
data.tar.gz: 821e69506dcde2eca70b737a97a8d0f3f4cce3f3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 285a6ba405445c535fc2157c81bee4ce48825716d2048acd3060221371b1cecd6081c5e1c487f67e373292ed97841d6e45b78abdb98cf3f81bf854d10c5f4473
|
|
7
|
+
data.tar.gz: 194eed21affeaf868a337ba758034f11496c077f02945a403c923a29de0c1f1e11f8da2a9318ecc5aefd3964b56b4aafd3ea167ee24edde962e580ac08f4f3ce
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/lib/bson/array.rb
CHANGED
|
@@ -64,7 +64,7 @@ module BSON
|
|
|
64
64
|
#
|
|
65
65
|
# @note This is used for repairing legacy bson data.
|
|
66
66
|
#
|
|
67
|
-
# @raise [
|
|
67
|
+
# @raise [ BSON::ObjectId::Invalid ] If the array is not 12 elements.
|
|
68
68
|
#
|
|
69
69
|
# @return [ String ] The raw object id bytes.
|
|
70
70
|
#
|
data/lib/bson/document.rb
CHANGED
|
@@ -172,6 +172,26 @@ module BSON
|
|
|
172
172
|
|
|
173
173
|
alias :update :merge!
|
|
174
174
|
|
|
175
|
+
if instance_methods.include?(:dig)
|
|
176
|
+
# Retrieves the value object corresponding to the each key objects repeatedly.
|
|
177
|
+
# Will normalize symbol keys into strings.
|
|
178
|
+
#
|
|
179
|
+
# @example Get value from nested sub-documents, handling missing levels.
|
|
180
|
+
# document # => { :key1 => { "key2" => "value"}}
|
|
181
|
+
# document.dig(:key1, :key2) # => "value"
|
|
182
|
+
# document.dig("key1", "key2") # => "value"
|
|
183
|
+
# document.dig("foo", "key2") # => nil
|
|
184
|
+
#
|
|
185
|
+
# @param [ Array<String, Symbol> ] *keys Keys, which constitute a "path" to the nested value.
|
|
186
|
+
#
|
|
187
|
+
# @return [ Object, NilClass ] The requested value or nil.
|
|
188
|
+
#
|
|
189
|
+
# @since 3.0.0
|
|
190
|
+
def dig(*keys)
|
|
191
|
+
super(*keys.map{|key| convert_key(key)})
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
|
|
175
195
|
private
|
|
176
196
|
|
|
177
197
|
def convert_key(key)
|
data/lib/bson/string.rb
CHANGED
|
@@ -79,7 +79,7 @@ module BSON
|
|
|
79
79
|
#
|
|
80
80
|
# @note This is used for repairing legacy bson data.
|
|
81
81
|
#
|
|
82
|
-
# @raise [
|
|
82
|
+
# @raise [ BSON::ObjectId::Invalid ] If the string is not 12 elements.
|
|
83
83
|
#
|
|
84
84
|
# @return [ String ] The raw object id bytes.
|
|
85
85
|
#
|
data/lib/bson/version.rb
CHANGED
data/spec/bson/document_spec.rb
CHANGED
|
@@ -96,6 +96,28 @@ describe BSON::Document do
|
|
|
96
96
|
end
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
+
if described_class.instance_methods.include?(:dig)
|
|
100
|
+
describe "#dig" do
|
|
101
|
+
let(:document) do
|
|
102
|
+
described_class.new("key1" => { :key2 => "value" })
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
context "when provided string keys" do
|
|
106
|
+
|
|
107
|
+
it "returns the value" do
|
|
108
|
+
expect(document.dig("key1", "key2")).to eq("value")
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
context "when provided symbol keys" do
|
|
113
|
+
|
|
114
|
+
it "returns the value" do
|
|
115
|
+
expect(document.dig(:key1, :key2)).to eq("value")
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
99
121
|
describe "#delete" do
|
|
100
122
|
|
|
101
123
|
shared_examples_for "a document with deletable pairs" do
|
|
@@ -766,7 +788,7 @@ describe BSON::Document do
|
|
|
766
788
|
"#{35.to_bson}"+
|
|
767
789
|
"#{BSON::Document::BSON_TYPE}0#{BSON::NULL_BYTE}#{12.to_bson}#{BSON::Int32::BSON_TYPE}a#{BSON::NULL_BYTE}#{1.to_bson}#{BSON::NULL_BYTE}" +
|
|
768
790
|
"#{BSON::Document::BSON_TYPE}1#{BSON::NULL_BYTE}#{12.to_bson}#{BSON::Int32::BSON_TYPE}b#{BSON::NULL_BYTE}#{2.to_bson}#{BSON::NULL_BYTE}" +
|
|
769
|
-
"#{BSON::NULL_BYTE}" +
|
|
791
|
+
"#{BSON::NULL_BYTE}" +
|
|
770
792
|
"#{BSON::NULL_BYTE}"
|
|
771
793
|
end
|
|
772
794
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bson
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.3.0
|
|
4
|
+
version: 4.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tyler Brock
|
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
|
34
34
|
UgLdYyyGANc+TOKLFmx0eAJlCljAurbX7ctO2XI0f1AUdEYSqGzut+datXK/9nwQ
|
|
35
35
|
FACf8zd11PEds/Opai2Qp4aOBgaxXhhFG357umy1vRs=
|
|
36
36
|
-----END CERTIFICATE-----
|
|
37
|
-
date:
|
|
37
|
+
date: 2018-01-17 00:00:00.000000000 Z
|
|
38
38
|
dependencies: []
|
|
39
39
|
description: A full featured BSON specification implementation, in Ruby
|
|
40
40
|
email:
|
|
@@ -177,76 +177,76 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
177
|
version: 1.3.6
|
|
178
178
|
requirements: []
|
|
179
179
|
rubyforge_project: bson
|
|
180
|
-
rubygems_version: 2.6.
|
|
180
|
+
rubygems_version: 2.6.14
|
|
181
181
|
signing_key:
|
|
182
182
|
specification_version: 4
|
|
183
183
|
summary: Ruby Implementation of the BSON specification
|
|
184
184
|
test_files:
|
|
185
|
-
- spec/bson/
|
|
186
|
-
- spec/bson/
|
|
187
|
-
- spec/bson/
|
|
188
|
-
- spec/bson/
|
|
185
|
+
- spec/bson/regexp_spec.rb
|
|
186
|
+
- spec/bson/min_key_spec.rb
|
|
187
|
+
- spec/bson/time_spec.rb
|
|
188
|
+
- spec/bson/int32_spec.rb
|
|
189
189
|
- spec/bson/code_spec.rb
|
|
190
|
-
- spec/bson/code_with_scope_spec.rb
|
|
191
190
|
- spec/bson/config_spec.rb
|
|
191
|
+
- spec/bson/undefined_spec.rb
|
|
192
192
|
- spec/bson/corpus_spec.rb
|
|
193
|
+
- spec/bson/boolean_spec.rb
|
|
194
|
+
- spec/bson/object_spec.rb
|
|
195
|
+
- spec/bson/array_spec.rb
|
|
196
|
+
- spec/bson/hash_spec.rb
|
|
193
197
|
- spec/bson/date_spec.rb
|
|
198
|
+
- spec/bson/json_spec.rb
|
|
199
|
+
- spec/bson/int64_spec.rb
|
|
200
|
+
- spec/bson/registry_spec.rb
|
|
201
|
+
- spec/bson/raw_spec.rb
|
|
202
|
+
- spec/bson/binary_spec.rb
|
|
203
|
+
- spec/bson/max_key_spec.rb
|
|
204
|
+
- spec/bson/code_with_scope_spec.rb
|
|
194
205
|
- spec/bson/date_time_spec.rb
|
|
195
|
-
- spec/bson/decimal128_spec.rb
|
|
196
|
-
- spec/bson/document_spec.rb
|
|
197
206
|
- spec/bson/driver_bson_spec.rb
|
|
198
207
|
- spec/bson/false_class_spec.rb
|
|
199
|
-
- spec/bson/
|
|
200
|
-
- spec/bson/hash_spec.rb
|
|
201
|
-
- spec/bson/int32_spec.rb
|
|
202
|
-
- spec/bson/int64_spec.rb
|
|
203
|
-
- spec/bson/integer_spec.rb
|
|
204
|
-
- spec/bson/json_spec.rb
|
|
205
|
-
- spec/bson/max_key_spec.rb
|
|
206
|
-
- spec/bson/min_key_spec.rb
|
|
207
|
-
- spec/bson/nil_class_spec.rb
|
|
208
|
-
- spec/bson/object_id_spec.rb
|
|
209
|
-
- spec/bson/object_spec.rb
|
|
210
|
-
- spec/bson/open_struct_spec.rb
|
|
211
|
-
- spec/bson/raw_spec.rb
|
|
212
|
-
- spec/bson/regexp_spec.rb
|
|
213
|
-
- spec/bson/registry_spec.rb
|
|
208
|
+
- spec/bson/byte_buffer_spec.rb
|
|
214
209
|
- spec/bson/string_spec.rb
|
|
215
|
-
- spec/bson/
|
|
216
|
-
- spec/bson/time_spec.rb
|
|
210
|
+
- spec/bson/open_struct_spec.rb
|
|
217
211
|
- spec/bson/timestamp_spec.rb
|
|
212
|
+
- spec/bson/symbol_spec.rb
|
|
213
|
+
- spec/bson/decimal128_spec.rb
|
|
214
|
+
- spec/bson/integer_spec.rb
|
|
215
|
+
- spec/bson/document_spec.rb
|
|
216
|
+
- spec/bson/float_spec.rb
|
|
217
|
+
- spec/bson/nil_class_spec.rb
|
|
218
218
|
- spec/bson/true_class_spec.rb
|
|
219
|
-
- spec/bson/
|
|
220
|
-
- spec/bson_spec.rb
|
|
219
|
+
- spec/bson/object_id_spec.rb
|
|
221
220
|
- spec/spec_helper.rb
|
|
222
|
-
- spec/
|
|
223
|
-
- spec/support/corpus
|
|
224
|
-
- spec/support/corpus-tests/boolean.json
|
|
225
|
-
- spec/support/corpus-tests/code.json
|
|
226
|
-
- spec/support/corpus-tests/code_w_scope.json
|
|
227
|
-
- spec/support/corpus-tests/document.json
|
|
228
|
-
- spec/support/corpus-tests/double.json
|
|
229
|
-
- spec/support/corpus-tests/failures/binary.json
|
|
221
|
+
- spec/bson_spec.rb
|
|
222
|
+
- spec/support/corpus.rb
|
|
230
223
|
- spec/support/corpus-tests/failures/datetime.json
|
|
231
|
-
- spec/support/corpus-tests/failures/dbpointer.json
|
|
232
|
-
- spec/support/corpus-tests/failures/int64.json
|
|
233
224
|
- spec/support/corpus-tests/failures/symbol.json
|
|
225
|
+
- spec/support/corpus-tests/failures/int64.json
|
|
226
|
+
- spec/support/corpus-tests/failures/dbpointer.json
|
|
234
227
|
- spec/support/corpus-tests/failures/undefined.json
|
|
235
|
-
- spec/support/corpus-tests/
|
|
228
|
+
- spec/support/corpus-tests/failures/binary.json
|
|
236
229
|
- spec/support/corpus-tests/maxkey.json
|
|
237
|
-
- spec/support/corpus-tests/
|
|
238
|
-
- spec/support/corpus-tests/null.json
|
|
230
|
+
- spec/support/corpus-tests/boolean.json
|
|
239
231
|
- spec/support/corpus-tests/oid.json
|
|
240
|
-
- spec/support/corpus-tests/
|
|
232
|
+
- spec/support/corpus-tests/code.json
|
|
233
|
+
- spec/support/corpus-tests/array.json
|
|
234
|
+
- spec/support/corpus-tests/double.json
|
|
235
|
+
- spec/support/corpus-tests/code_w_scope.json
|
|
241
236
|
- spec/support/corpus-tests/string.json
|
|
242
|
-
- spec/support/corpus-tests/
|
|
237
|
+
- spec/support/corpus-tests/document.json
|
|
243
238
|
- spec/support/corpus-tests/top.json
|
|
244
|
-
- spec/support/corpus.
|
|
239
|
+
- spec/support/corpus-tests/null.json
|
|
240
|
+
- spec/support/corpus-tests/int32.json
|
|
241
|
+
- spec/support/corpus-tests/timestamp.json
|
|
242
|
+
- spec/support/corpus-tests/minkey.json
|
|
243
|
+
- spec/support/corpus-tests/regex.json
|
|
244
|
+
- spec/support/shared_examples.rb
|
|
245
245
|
- spec/support/driver-spec-tests/decimal128/decimal128-1.json
|
|
246
|
-
- spec/support/driver-spec-tests/decimal128/decimal128-2.json
|
|
247
|
-
- spec/support/driver-spec-tests/decimal128/decimal128-3.json
|
|
248
|
-
- spec/support/driver-spec-tests/decimal128/decimal128-4.json
|
|
249
|
-
- spec/support/driver-spec-tests/decimal128/decimal128-5.json
|
|
250
|
-
- spec/support/driver-spec-tests/decimal128/decimal128-6.json
|
|
251
246
|
- spec/support/driver-spec-tests/decimal128/decimal128-7.json
|
|
252
|
-
- spec/support/
|
|
247
|
+
- spec/support/driver-spec-tests/decimal128/decimal128-6.json
|
|
248
|
+
- spec/support/driver-spec-tests/decimal128/decimal128-5.json
|
|
249
|
+
- spec/support/driver-spec-tests/decimal128/decimal128-4.json
|
|
250
|
+
- spec/support/driver-spec-tests/decimal128/decimal128-3.json
|
|
251
|
+
- spec/support/driver-spec-tests/decimal128/decimal128-2.json
|
|
252
|
+
- spec/support/common_driver.rb
|
metadata.gz.sig
CHANGED
|
Binary file
|