bson 4.6.0-java → 4.7.0-java

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11ea9786e26cfa4b976e85a690bbb99c54bc516eb0cff72fb3e696f71ac59a71
4
- data.tar.gz: 97871ed99465524f12d2de82d5f86f7f27b148db545a7b46626d36d68931071d
3
+ metadata.gz: 885bd32acf7d775cc3f95e4ff852c9a0ec186e5a9cb52786205c1a413c0a2a35
4
+ data.tar.gz: deb2e62d9d65d4e8cb97d38b439d5401fe91d1cc05b4ee28b179eb28fad4be99
5
5
  SHA512:
6
- metadata.gz: ef47b419cd7b32c16542ff041aaffebd4f137b949a1e6324b3ebc7b6bdf69367cf54c13e0b696378af4793c1d615a35e3760da2eb85e0764f7e559d02fea25b4
7
- data.tar.gz: 53722b2aa6b4a98015b41a23e4f2abca58204f48eb83a5353df4a1640e80648b03808e1aa2760e0ee1e7ef58ccf9b4da7b80887ff4a7664d3ab404ccfe60e71e
6
+ metadata.gz: 93d8df61a13fe091a0c710f1f39a75fbd13a1da30436babef31f036a2f16701b14ec98a340e7677a6448462f5936aaddc75ecc22054ac29459c7b126ed7a8b16
7
+ data.tar.gz: fc5b236889404ed7746192dd2a4da19678eb3cac4e2bd33fec844f11f4840364d5eb115833eacc5ff3a53fe8f2dd4175a932664e473d5e02a754012a7fff0988
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/bson-ruby.jar CHANGED
Binary file
data/lib/bson.rb CHANGED
@@ -101,7 +101,7 @@ begin
101
101
  else
102
102
  require "bson_native"
103
103
  end
104
- rescue LoadError
105
- $stderr.puts("Failed to load the necessary extensions.")
104
+ rescue LoadError => e
105
+ $stderr.puts("Failed to load the necessary extensions: #{e.class}: #{e}")
106
106
  raise
107
107
  end
data/lib/bson/binary.rb CHANGED
@@ -47,13 +47,17 @@ module BSON
47
47
  # @since 2.0.0
48
48
  TYPES = SUBTYPES.invert.freeze
49
49
 
50
- # @!attribute data
51
- # @return [ Object ] The raw binary data.
52
- # @since 2.0.0
53
- # @!attribute type
54
- # @return [ Symbol ] The binary type.
55
- # @since 2.0.0
56
- attr_reader :data, :type
50
+ # @return [ String ] The raw binary data.
51
+ #
52
+ # The string is always stored in BINARY encoding.
53
+ #
54
+ # @since 2.0.0
55
+ attr_reader :data
56
+
57
+ # @return [ Symbol ] The binary type.
58
+ #
59
+ # @since 2.0.0
60
+ attr_reader :type
57
61
 
58
62
  # Determine if this binary object is equal to another object.
59
63
  #
@@ -96,15 +100,32 @@ module BSON
96
100
 
97
101
  # Instantiate the new binary object.
98
102
  #
103
+ # This method accepts a string in any encoding; however, if a string is
104
+ # of a non-BINARY encoding, the encoding is set to BINARY. This does not
105
+ # change the bytes of the string but it means that applications referencing
106
+ # the data of a Binary instance cannot assume it is in a non-binary
107
+ # encoding, even if the string given to the constructor was in such an
108
+ # encoding.
109
+ #
99
110
  # @example Instantiate a binary.
100
111
  # BSON::Binary.new(data, :md5)
101
112
  #
102
- # @param [ Object ] data The raw binary data.
113
+ # @param [ String ] data The raw binary data.
103
114
  # @param [ Symbol ] type The binary type.
104
115
  #
105
116
  # @since 2.0.0
106
117
  def initialize(data = "", type = :generic)
107
118
  validate_type!(type)
119
+
120
+ # The Binary class used to force encoding to BINARY when serializing to
121
+ # BSON. Instead of doing that during serialization, perform this
122
+ # operation during Binary construction to make it clear that once
123
+ # the string is given to the Binary, the data is treated as a binary
124
+ # string and not a text string in any encoding.
125
+ unless data.encoding == Encoding.find('BINARY')
126
+ data = data.dup.force_encoding('BINARY')
127
+ end
128
+
108
129
  @data = data
109
130
  @type = type
110
131
  end
@@ -121,6 +142,69 @@ module BSON
121
142
  "<BSON::Binary:0x#{object_id} type=#{type} data=0x#{data[0, 8].unpack('H*').first}...>"
122
143
  end
123
144
 
145
+ # Returns a string representation of the UUID stored in this Binary.
146
+ #
147
+ # If the Binary is of subtype 4 (:uuid), this method returns the UUID
148
+ # in RFC 4122 format. If the representation parameter is provided, it
149
+ # must be the value :standard as a symbol or a string.
150
+ #
151
+ # If the Binary is of subtype 3 (:uuid_old), this method requires that
152
+ # the representation parameter is provided and is one of :csharp_legacy,
153
+ # :java_legacy or :python_legacy or the equivalent strings. In this case
154
+ # the method assumes the Binary stores the UUID in the specified format,
155
+ # transforms the stored bytes to the standard RFC 4122 representation
156
+ # and returns the UUID in RFC 4122 format.
157
+ #
158
+ # If the Binary is of another subtype, this method raises TypeError.
159
+ #
160
+ # @param [ Symbol ] representation How to interpret the UUID.
161
+ #
162
+ # @return [ String ] The string representation of the UUID.
163
+ #
164
+ # @raise [ TypeError ] If the subtype of Binary is not :uuid nor :uuid_old.
165
+ # @raise [ ArgumentError ] If the representation other than :standard
166
+ # is requested for Binary subtype 4 (:uuid), if :standard representation
167
+ # is requested for Binary subtype 3 (:uuid_old), or if an invalid
168
+ # representation is requested.
169
+ #
170
+ # @api experimental
171
+ def to_uuid(representation = nil)
172
+ if representation.is_a?(String)
173
+ raise ArgumentError, "Representation must be given as a symbol: #{representation}"
174
+ end
175
+ case type
176
+ when :uuid
177
+ if representation && representation != :standard
178
+ raise ArgumentError, "Binary of type :uuid can only be stringified to :standard representation, requested: #{representation.inspect}"
179
+ end
180
+ data.split('').map { |n| '%02x' % n.ord }.join.sub(/(.{8})(.{4})(.{4})(.{12})/, '\1-\2-\3-\4')
181
+ when :uuid_old
182
+ if representation.nil?
183
+ raise ArgumentError, 'Representation must be specified for BSON::Binary objects of type :uuid_old'
184
+ end
185
+
186
+ hex = data.split('').map { |n| '%02x' % n.ord }.join
187
+
188
+ case representation
189
+ when :standard
190
+ raise ArgumentError, 'BSON::Binary objects of type :uuid_old cannot be stringified to :standard representation'
191
+ when :csharp_legacy
192
+ hex.sub(/\A(..)(..)(..)(..)(..)(..)(..)(..)(.{16})\z/, '\4\3\2\1\6\5\8\7\9')
193
+ when :java_legacy
194
+ hex.sub(/\A(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)\z/) do |m|
195
+ "#{$8}#{$7}#{$6}#{$5}#{$4}#{$3}#{$2}#{$1}" +
196
+ "#{$16}#{$15}#{$14}#{$13}#{$12}#{$11}#{$10}#{$9}"
197
+ end
198
+ when :python_legacy
199
+ hex
200
+ else
201
+ raise ArgumentError, "Invalid representation: #{representation}"
202
+ end.sub(/(.{8})(.{4})(.{4})(.{12})/, '\1-\2-\3-\4')
203
+ else
204
+ raise TypeError, "The type of Binary must be :uuid or :uuid_old, this object is: #{type.inspect}"
205
+ end
206
+ end
207
+
124
208
  # Encode the binary type
125
209
  #
126
210
  # @example Encode the binary.
@@ -136,7 +220,7 @@ module BSON
136
220
  buffer.put_int32(0)
137
221
  buffer.put_byte(SUBTYPES[type])
138
222
  buffer.put_int32(data.bytesize) if type == :old
139
- buffer.put_bytes(data.force_encoding(BINARY))
223
+ buffer.put_bytes(data)
140
224
  buffer.replace_int32(position, buffer.length - position - 5)
141
225
  end
142
226
 
@@ -157,6 +241,55 @@ module BSON
157
241
  new(data, type)
158
242
  end
159
243
 
244
+ # Creates a BSON::Binary from a string representation of a UUID.
245
+ #
246
+ # The UUID may be given in either 00112233-4455-6677-8899-aabbccddeeff or
247
+ # 00112233445566778899AABBCCDDEEFF format - specifically, any dashes in
248
+ # the UUID are removed and both upper and lower case letters are acceptable.
249
+ #
250
+ # The input UUID string is always interpreted to be in the RFC 4122 format.
251
+ #
252
+ # If representation is not provided, this method creates a BSON::Binary
253
+ # of subtype 4 (:uuid). If representation is provided, it must be one of
254
+ # :standard, :csharp_legacy, :java_legacy or :python_legacy. If
255
+ # representation is :standard, this method creates a subtype 4 (:uuid)
256
+ # binary which is the same behavior as if representation was not provided.
257
+ # For other representations, this method creates a Binary of subtype 3
258
+ # (:uuid_old) with the UUID converted to the appropriate legacy MongoDB
259
+ # UUID storage format.
260
+ #
261
+ # @param [ String ] uuid The string representation of the UUID.
262
+ # @param [ Symbol ] representation How to interpret the UUID.
263
+ #
264
+ # @return [ Binary ] The binary.
265
+ #
266
+ # @raise [ ArgumentError ] If invalid representation is requested.
267
+ #
268
+ # @api experimental
269
+ def self.from_uuid(uuid, representation = nil)
270
+ if representation.is_a?(String)
271
+ raise ArgumentError, "Representation must be given as a symbol: #{representation}"
272
+ end
273
+ uuid_binary = uuid.gsub('-', '').scan(/../).map(&:hex).map(&:chr).join
274
+ case representation && representation
275
+ when nil, :standard
276
+ new(uuid_binary, :uuid)
277
+ when :csharp_legacy
278
+ uuid_binary.sub!(/\A(.)(.)(.)(.)(.)(.)(.)(.)(.{8})\z/, '\4\3\2\1\6\5\8\7\9')
279
+ new(uuid_binary, :uuid_old)
280
+ when :java_legacy
281
+ uuid_binary.sub!(/\A(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)\z/) do |m|
282
+ "#{$8}#{$7}#{$6}#{$5}#{$4}#{$3}#{$2}#{$1}" +
283
+ "#{$16}#{$15}#{$14}#{$13}#{$12}#{$11}#{$10}#{$9}"
284
+ end
285
+ new(uuid_binary, :uuid_old)
286
+ when :python_legacy
287
+ new(uuid_binary, :uuid_old)
288
+ else
289
+ raise ArgumentError, "Invalid representation: #{representation}"
290
+ end
291
+ end
292
+
160
293
  # Raised when providing an invalid type to the Binary.
161
294
  #
162
295
  # @since 2.0.0
data/lib/bson/version.rb CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module BSON
16
- VERSION = "4.6.0".freeze
16
+ VERSION = "4.7.0".freeze
17
17
  end
@@ -72,6 +72,14 @@ describe BSON::Binary do
72
72
 
73
73
  describe "#initialize" do
74
74
 
75
+ context 'when type is not given' do
76
+ let(:obj) { described_class.new('foo') }
77
+
78
+ it 'defaults to generic type' do
79
+ expect(obj.type).to eq(:generic)
80
+ end
81
+ end
82
+
75
83
  context "when he type is invalid" do
76
84
 
77
85
  it "raises an error" do
@@ -105,7 +113,11 @@ describe BSON::Binary do
105
113
  expect(object.inspect).to eq("<BSON::Binary:0x#{object.object_id} type=user data=0x1f8b08000c787055...>")
106
114
  end
107
115
 
108
- it 'is not different from default encoding' do
116
+ it 'is not binary' do
117
+ # As long as the default Ruby encoding is not binary, the inspected
118
+ # string should also not be in the binary encoding (it should be
119
+ # in one of the text encodings, but which one could depend on
120
+ # the Ruby runtime environment).
109
121
  expect(object.inspect.encoding).not_to eq(Encoding::BINARY)
110
122
  end
111
123
 
@@ -113,6 +125,15 @@ describe BSON::Binary do
113
125
 
114
126
  end
115
127
 
128
+ describe '#from_bson' do
129
+ let(:bson) { BSON::ByteBuffer.new("#{5.to_bson}#{0.chr}hello".force_encoding('BINARY')) }
130
+ let(:obj) { described_class.from_bson(bson) }
131
+
132
+ it 'sets data encoding to binary' do
133
+ expect(obj.data.encoding).to eq(Encoding.find('BINARY'))
134
+ end
135
+ end
136
+
116
137
  describe "#to_bson/#from_bson" do
117
138
 
118
139
  let(:type) { 5.chr }
@@ -181,5 +202,51 @@ describe BSON::Binary do
181
202
  it_behaves_like "a serializable bson element"
182
203
  it_behaves_like "a deserializable bson element"
183
204
  end
205
+
206
+ context 'when given binary string' do
207
+ let(:obj) { described_class.new("\x00\xfe\xff".force_encoding('BINARY')) }
208
+ let(:bson) { "#{3.to_bson}#{0.chr}\x00\xfe\xff".force_encoding('BINARY') }
209
+
210
+ it_behaves_like "a serializable bson element"
211
+ it_behaves_like "a deserializable bson element"
212
+ end
213
+
214
+ context 'when given a frozen string' do
215
+ let(:str) { "\x00\xfe\xff".force_encoding('BINARY').freeze }
216
+ let(:obj) { described_class.new(str) }
217
+ let(:bson) { "#{3.to_bson}#{0.chr}\x00\xfe\xff".force_encoding('BINARY') }
218
+
219
+ it_behaves_like "a serializable bson element"
220
+ it_behaves_like "a deserializable bson element"
221
+ end
222
+ end
223
+
224
+ describe '#to_uuid' do
225
+ let(:obj) { described_class.new("\x00" * 16, :uuid) }
226
+
227
+ it 'accepts symbol representation' do
228
+ expect(obj.to_uuid(:standard)).to eq('00000000-0000-0000-0000000000000000')
229
+ end
230
+
231
+ it 'rejects string representation' do
232
+ expect do
233
+ obj.to_uuid('standard')
234
+ end.to raise_error(ArgumentError, /Representation must be given as a symbol/)
235
+ end
236
+ end
237
+
238
+ describe '#from_uuid' do
239
+ let(:uuid) { '00000000-0000-0000-0000000000000000' }
240
+
241
+ it 'accepts symbol representation' do
242
+ obj = described_class.from_uuid(uuid, :standard)
243
+ expect(obj.data).to eq("\x00" * 16)
244
+ end
245
+
246
+ it 'rejects string representation' do
247
+ expect do
248
+ described_class.from_uuid(uuid, 'standard')
249
+ end.to raise_error(ArgumentError, /Representation must be given as a symbol/)
250
+ end
184
251
  end
185
252
  end
@@ -0,0 +1,177 @@
1
+ # Copyright (C) 2019 MongoDB Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "spec_helper"
16
+ require "base64"
17
+
18
+ describe "BSON::Binary - UUID spec tests" do
19
+ def make_binary(uuid_hex_str, type)
20
+ uuid_binary_str = uuid_hex_str.scan(/../).map(&:hex).map(&:chr).join
21
+ BSON::Binary.new(uuid_binary_str, type)
22
+ end
23
+
24
+ describe 'explicit encoding' do
25
+ let(:uuid_str) { '00112233-4455-6677-8899-aabbccddeeff' }
26
+
27
+ shared_examples_for 'creates binary' do
28
+ it 'creates subtype 4 binary' do
29
+ expect(binary.type).to eq(expected_type)
30
+ end
31
+
32
+ it 'creates binary with correct value' do
33
+ expect(binary.data).to eq(expected_hex_value.scan(/../).map(&:hex).map(&:chr).join)
34
+ end
35
+ end
36
+
37
+ context 'no representation' do
38
+ let(:binary) { BSON::Binary.from_uuid(uuid_str) }
39
+ let(:expected_type) { :uuid }
40
+ let(:expected_hex_value) { '00112233445566778899AABBCCDDEEFF' }
41
+
42
+ it_behaves_like 'creates binary'
43
+ end
44
+
45
+ context 'standard representation' do
46
+ let(:binary) { BSON::Binary.from_uuid(uuid_str, :standard) }
47
+ let(:expected_type) { :uuid }
48
+ let(:expected_hex_value) { '00112233445566778899AABBCCDDEEFF' }
49
+
50
+ it_behaves_like 'creates binary'
51
+ end
52
+
53
+ context 'csharp legacy representation' do
54
+ let(:binary) { BSON::Binary.from_uuid(uuid_str, :csharp_legacy) }
55
+ let(:expected_type) { :uuid_old }
56
+ let(:expected_hex_value) { '33221100554477668899AABBCCDDEEFF' }
57
+
58
+ it_behaves_like 'creates binary'
59
+ end
60
+
61
+ context 'java legacy representation' do
62
+ let(:binary) { BSON::Binary.from_uuid(uuid_str, :java_legacy) }
63
+ let(:expected_type) { :uuid_old }
64
+ let(:expected_hex_value) { '7766554433221100FFEEDDCCBBAA9988' }
65
+
66
+ it_behaves_like 'creates binary'
67
+ end
68
+
69
+ context 'python legacy representation' do
70
+ let(:binary) { BSON::Binary.from_uuid(uuid_str, :python_legacy) }
71
+ let(:expected_type) { :uuid_old }
72
+ let(:expected_hex_value) { '00112233445566778899AABBCCDDEEFF' }
73
+
74
+ it_behaves_like 'creates binary'
75
+ end
76
+ end
77
+
78
+ describe 'explicit decoding' do
79
+ context ':uuid, standard encoded' do
80
+ let(:binary) { make_binary("00112233445566778899AABBCCDDEEFF", :uuid) }
81
+
82
+ it 'decodes without arguments' do
83
+ expect(binary.to_uuid.gsub('-', '').upcase).to eq("00112233445566778899AABBCCDDEEFF")
84
+ end
85
+
86
+ it 'decodes as standard' do
87
+ expect(binary.to_uuid(:standard).gsub('-', '').upcase).to eq("00112233445566778899AABBCCDDEEFF")
88
+ end
89
+
90
+ it 'does not decode as csharp legacy' do
91
+ expect do
92
+ binary.to_uuid(:csharp_legacy)
93
+ end.to raise_error(ArgumentError, /Binary of type :uuid can only be stringified to :standard representation/)
94
+ end
95
+
96
+ it 'does not decode as java legacy' do
97
+ expect do
98
+ binary.to_uuid(:java_legacy)
99
+ end.to raise_error(ArgumentError, /Binary of type :uuid can only be stringified to :standard representation/)
100
+ end
101
+
102
+ it 'does not decode as python legacy' do
103
+ expect do
104
+ binary.to_uuid(:python_legacy)
105
+ end.to raise_error(ArgumentError, /Binary of type :uuid can only be stringified to :standard representation/)
106
+ end
107
+ end
108
+
109
+ shared_examples_for 'a legacy uuid' do
110
+ it 'does not decode without arguments' do
111
+ expect do
112
+ binary.to_uuid
113
+ end.to raise_error(ArgumentError, /Representation must be specified for BSON::Binary objects of type :uuid_old/)
114
+ end
115
+
116
+ it 'does not decode as standard' do
117
+ expect do
118
+ binary.to_uuid(:standard)
119
+ end.to raise_error(ArgumentError, /BSON::Binary objects of type :uuid_old cannot be stringified to :standard representation/)
120
+ end
121
+ end
122
+
123
+ context ':uuid_old, csharp legacy encoded' do
124
+ let(:binary) { make_binary("33221100554477668899AABBCCDDEEFF", :uuid_old) }
125
+
126
+ it_behaves_like 'a legacy uuid'
127
+
128
+ it 'decodes as csharp legacy' do
129
+ expect(binary.to_uuid(:csharp_legacy).gsub('-', '').upcase).to eq("00112233445566778899AABBCCDDEEFF")
130
+ end
131
+
132
+ it 'decodes as java legacy' do
133
+ expect(binary.to_uuid(:java_legacy).gsub('-', '').upcase).not_to eq("00112233445566778899AABBCCDDEEFF")
134
+ end
135
+
136
+ it 'decodes as python legacy' do
137
+ expect(binary.to_uuid(:python_legacy).gsub('-', '').upcase).not_to eq("00112233445566778899AABBCCDDEEFF")
138
+ end
139
+ end
140
+
141
+ context ':uuid_old, java legacy encoded' do
142
+ let(:binary) { make_binary("7766554433221100FFEEDDCCBBAA9988", :uuid_old) }
143
+
144
+ it_behaves_like 'a legacy uuid'
145
+
146
+ it 'decodes as csharp legacy' do
147
+ expect(binary.to_uuid(:csharp_legacy).gsub('-', '').upcase).not_to eq("00112233445566778899AABBCCDDEEFF")
148
+ end
149
+
150
+ it 'decodes as java legacy' do
151
+ expect(binary.to_uuid(:java_legacy).gsub('-', '').upcase).to eq("00112233445566778899AABBCCDDEEFF")
152
+ end
153
+
154
+ it 'decodes as python legacy' do
155
+ expect(binary.to_uuid(:python_legacy).gsub('-', '').upcase).not_to eq("00112233445566778899AABBCCDDEEFF")
156
+ end
157
+ end
158
+
159
+ context ':uuid_old, python legacy encoded' do
160
+ let(:binary) { make_binary("00112233445566778899AABBCCDDEEFF", :uuid_old) }
161
+
162
+ it_behaves_like 'a legacy uuid'
163
+
164
+ it 'decodes as csharp legacy' do
165
+ expect(binary.to_uuid(:csharp_legacy).gsub('-', '').upcase).not_to eq("00112233445566778899AABBCCDDEEFF")
166
+ end
167
+
168
+ it 'decodes as java legacy' do
169
+ expect(binary.to_uuid(:java_legacy).gsub('-', '').upcase).not_to eq("00112233445566778899AABBCCDDEEFF")
170
+ end
171
+
172
+ it 'decodes as python legacy' do
173
+ expect(binary.to_uuid(:python_legacy).gsub('-', '').upcase).to eq("00112233445566778899AABBCCDDEEFF")
174
+ end
175
+ end
176
+ end
177
+ end
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.6.0
4
+ version: 4.7.0
5
5
  platform: java
6
6
  authors:
7
7
  - Tyler Brock
@@ -33,7 +33,7 @@ cert_chain:
33
33
  bMYVwXXhV8czdzgkQB/ZPWHSbEWXnmkze1mzvqWBCPOVXYrcnL9cnEl/RoxtS1hr
34
34
  Db6Ac6mCUSYfYHBWpWqxjc45n70i5Xi1
35
35
  -----END CERTIFICATE-----
36
- date: 2019-10-30 00:00:00.000000000 Z
36
+ date: 2019-12-13 00:00:00.000000000 Z
37
37
  dependencies: []
38
38
  description: A fully featured BSON specification implementation in Ruby
39
39
  email:
@@ -89,6 +89,7 @@ files:
89
89
  - lib/bson/version.rb
90
90
  - spec/bson/array_spec.rb
91
91
  - spec/bson/binary_spec.rb
92
+ - spec/bson/binary_uuid_spec.rb
92
93
  - spec/bson/boolean_spec.rb
93
94
  - spec/bson/byte_buffer_read_spec.rb
94
95
  - spec/bson/byte_buffer_spec.rb
@@ -186,81 +187,82 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
187
  version: 1.3.6
187
188
  requirements: []
188
189
  rubyforge_project:
189
- rubygems_version: 2.7.6
190
+ rubygems_version: 2.7.9
190
191
  signing_key:
191
192
  specification_version: 4
192
193
  summary: Ruby implementation of the BSON specification
193
194
  test_files:
194
- - spec/bson_spec.rb
195
195
  - spec/spec_helper.rb
196
- - spec/bson/min_key_spec.rb
196
+ - spec/bson_spec.rb
197
+ - spec/bson/date_spec.rb
198
+ - spec/bson/config_spec.rb
199
+ - spec/bson/int64_spec.rb
197
200
  - spec/bson/undefined_spec.rb
198
- - spec/bson/regexp_spec.rb
199
- - spec/bson/decimal128_spec.rb
201
+ - spec/bson/corpus_spec.rb
200
202
  - spec/bson/code_spec.rb
201
- - spec/bson/time_spec.rb
203
+ - spec/bson/driver_bson_spec.rb
202
204
  - spec/bson/object_spec.rb
203
- - spec/bson/integer_spec.rb
205
+ - spec/bson/date_time_spec.rb
206
+ - spec/bson/raw_spec.rb
207
+ - spec/bson/min_key_spec.rb
208
+ - spec/bson/time_with_zone_spec.rb
209
+ - spec/bson/time_spec.rb
210
+ - spec/bson/hash_spec.rb
211
+ - spec/bson/timestamp_spec.rb
212
+ - spec/bson/int32_spec.rb
213
+ - spec/bson/byte_buffer_spec.rb
214
+ - spec/bson/registry_spec.rb
215
+ - spec/bson/regexp_spec.rb
216
+ - spec/bson/byte_buffer_write_spec.rb
217
+ - spec/bson/symbol_spec.rb
204
218
  - spec/bson/string_spec.rb
205
- - spec/bson/byte_buffer_read_spec.rb
206
- - spec/bson/config_spec.rb
207
- - spec/bson/json_spec.rb
208
219
  - spec/bson/boolean_spec.rb
209
- - spec/bson/corpus_spec.rb
210
- - spec/bson/hash_spec.rb
211
220
  - spec/bson/open_struct_spec.rb
212
- - spec/bson/nil_class_spec.rb
221
+ - spec/bson/decimal128_spec.rb
222
+ - spec/bson/json_spec.rb
213
223
  - spec/bson/array_spec.rb
214
224
  - spec/bson/false_class_spec.rb
215
225
  - spec/bson/true_class_spec.rb
216
- - spec/bson/date_spec.rb
217
- - spec/bson/byte_buffer_write_spec.rb
218
- - spec/bson/int64_spec.rb
219
- - spec/bson/timestamp_spec.rb
220
- - spec/bson/max_key_spec.rb
221
- - spec/bson/raw_spec.rb
222
- - spec/bson/byte_buffer_spec.rb
223
- - spec/bson/document_spec.rb
224
- - spec/bson/code_with_scope_spec.rb
225
- - spec/bson/float_spec.rb
226
- - spec/bson/time_with_zone_spec.rb
227
226
  - spec/bson/binary_spec.rb
228
- - spec/bson/registry_spec.rb
229
- - spec/bson/symbol_spec.rb
230
- - spec/bson/driver_bson_spec.rb
231
- - spec/bson/date_time_spec.rb
227
+ - spec/bson/binary_uuid_spec.rb
232
228
  - spec/bson/object_id_spec.rb
233
- - spec/bson/int32_spec.rb
229
+ - spec/bson/code_with_scope_spec.rb
230
+ - spec/bson/nil_class_spec.rb
231
+ - spec/bson/integer_spec.rb
232
+ - spec/bson/document_spec.rb
233
+ - spec/bson/max_key_spec.rb
234
+ - spec/bson/byte_buffer_read_spec.rb
235
+ - spec/bson/float_spec.rb
234
236
  - spec/support/utils.rb
235
- - spec/support/common_driver.rb
237
+ - spec/support/corpus.rb
236
238
  - spec/support/shared_examples.rb
237
239
  - spec/support/spec_config.rb
238
- - spec/support/corpus.rb
239
- - spec/support/corpus-tests/code_w_scope.json
240
- - spec/support/corpus-tests/code.json
241
- - spec/support/corpus-tests/oid.json
242
- - spec/support/corpus-tests/timestamp.json
240
+ - spec/support/common_driver.rb
243
241
  - spec/support/corpus-tests/string.json
244
242
  - spec/support/corpus-tests/null.json
245
243
  - spec/support/corpus-tests/int32.json
246
244
  - spec/support/corpus-tests/maxkey.json
247
- - spec/support/corpus-tests/array.json
245
+ - spec/support/corpus-tests/timestamp.json
246
+ - spec/support/corpus-tests/code.json
247
+ - spec/support/corpus-tests/document.json
248
+ - spec/support/corpus-tests/double.json
248
249
  - spec/support/corpus-tests/regex.json
249
- - spec/support/corpus-tests/minkey.json
250
+ - spec/support/corpus-tests/oid.json
250
251
  - spec/support/corpus-tests/top.json
251
252
  - spec/support/corpus-tests/boolean.json
252
- - spec/support/corpus-tests/double.json
253
- - spec/support/corpus-tests/document.json
254
- - spec/support/corpus-tests/failures/undefined.json
253
+ - spec/support/corpus-tests/array.json
254
+ - spec/support/corpus-tests/code_w_scope.json
255
+ - spec/support/corpus-tests/minkey.json
255
256
  - spec/support/corpus-tests/failures/binary.json
256
- - spec/support/corpus-tests/failures/symbol.json
257
- - spec/support/corpus-tests/failures/int64.json
258
257
  - spec/support/corpus-tests/failures/dbpointer.json
258
+ - spec/support/corpus-tests/failures/symbol.json
259
+ - spec/support/corpus-tests/failures/undefined.json
259
260
  - spec/support/corpus-tests/failures/datetime.json
260
- - spec/support/driver-spec-tests/decimal128/decimal128-6.json
261
+ - spec/support/corpus-tests/failures/int64.json
262
+ - spec/support/driver-spec-tests/decimal128/decimal128-4.json
263
+ - spec/support/driver-spec-tests/decimal128/decimal128-2.json
264
+ - spec/support/driver-spec-tests/decimal128/decimal128-5.json
261
265
  - spec/support/driver-spec-tests/decimal128/decimal128-3.json
266
+ - spec/support/driver-spec-tests/decimal128/decimal128-6.json
262
267
  - spec/support/driver-spec-tests/decimal128/decimal128-1.json
263
- - spec/support/driver-spec-tests/decimal128/decimal128-4.json
264
268
  - spec/support/driver-spec-tests/decimal128/decimal128-7.json
265
- - spec/support/driver-spec-tests/decimal128/decimal128-5.json
266
- - spec/support/driver-spec-tests/decimal128/decimal128-2.json
metadata.gz.sig CHANGED
Binary file