bson 3.0.4 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b294933da8a03af3a5d3b9f165a239cd7a53cecd
4
- data.tar.gz: 5b9a47f87f41111d2c054cf109eab58e463b4c16
3
+ metadata.gz: 47f064976e34a90ffdc62d9b0f43264ada242462
4
+ data.tar.gz: 48151e4c94187076bfa4711c49059d501aa69d23
5
5
  SHA512:
6
- metadata.gz: 7507d40efb1f6b7ba64081d37c8069cd4731ce19f95c5bddd2440612e7b4d717cc48c07ebf87378bf979319ddfbd3eed7f72541443045caf34916a8b5c1b5070
7
- data.tar.gz: ef61737d497cecc1efd62dc365f75ea98e89bff7bdb8dc70a7af07cd15e48e9a20db717a9df2dba796ceee5c06db156113db4f1fc46aabf77e0cab1e3483da22
6
+ metadata.gz: 0e5fa3e317570ec74882f92db96ed317bed5af33ead6fd7cc586f3c978a538a401c0e61019ba118e68ecd81835bc092e036776d85987982f0ff9e7674d4b8773
7
+ data.tar.gz: f6010bed96f29ff857e67145c4af598578757836d03a27370dbcf42ab2da0584b6cfcba5e3830707971813ee68be7fea6664755d215de6b9bf8f60dbf76ad598
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,6 +1,17 @@
1
1
  BSON Changelog
2
2
  ==============
3
3
 
4
+ ## 3.1.0
5
+
6
+ ### New Features
7
+
8
+ * `BSON::Regexp::Raw` now behaves like a regular `Regexp` by delegating to the compiled and
9
+ wrapped regex. (Tom Scott)
10
+
11
+ ### Bug Fixes
12
+
13
+ * Fixed `inspect` on `BSON::Binary` to handle ASCII characters. (Jérémy Carlier)
14
+
4
15
  ## 3.0.4
5
16
 
6
17
  ### Bug Fixes
@@ -117,7 +117,7 @@ module BSON
117
117
  #
118
118
  # @since 2.3.0
119
119
  def inspect
120
- "<BSON::Binary:0x#{object_id} type=#{type} data=#{data[0, 8]}...>"
120
+ "<BSON::Binary:0x#{object_id} type=#{type} data=0x#{data[0, 8].unpack('H*').first}...>"
121
121
  end
122
122
 
123
123
  # Encode the binary type
@@ -120,6 +120,23 @@ module BSON
120
120
  @pattern = pattern
121
121
  @options = options
122
122
  end
123
+
124
+ # Allow automatic delegation of methods to the Regexp object
125
+ # returned by +compile+.
126
+ #
127
+ # @param [ String] method The name of a method.
128
+ #
129
+ # @since 3.1.0
130
+ def respond_to?(method)
131
+ compile.respond_to?(method) || super
132
+ end
133
+
134
+ private
135
+
136
+ def method_missing(method, *arguments)
137
+ return super unless respond_to?(method)
138
+ compile.send(method)
139
+ end
123
140
  end
124
141
 
125
142
  module ClassMethods
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module BSON
16
- VERSION = "3.0.4"
16
+ VERSION = "3.1.0"
17
17
  end
@@ -91,8 +91,25 @@ describe BSON::Binary do
91
91
  end
92
92
 
93
93
  it 'returns the truncated data and type' do
94
- expect(object.inspect).to eq("<BSON::Binary:0x#{object.object_id} type=user data=testing1...>")
94
+ expect(object.inspect).to eq("<BSON::Binary:0x#{object.object_id} type=user data=0x74657374696e6731...>")
95
95
  end
96
+
97
+ context 'with other encoding' do
98
+
99
+ let(:object) do
100
+ described_class.new("\x1F\x8B\b\x00\fxpU\x00\x03\xED\x1C\xDBv\xDB6\xF2\xBD_\x81UN\x9A\xE6T\x96H\xDD-\xDBjR7\xDD\xA6mR\x9F:m\xB7".force_encoding(Encoding::BINARY), :user)
101
+ end
102
+
103
+ it 'returns the truncated data and type' do
104
+ expect(object.inspect).to eq("<BSON::Binary:0x#{object.object_id} type=user data=0x1f8b08000c787055...>")
105
+ end
106
+
107
+ it 'is not different from default encoding' do
108
+ expect(object.inspect.encoding).not_to eq(Encoding::BINARY)
109
+ end
110
+
111
+ end
112
+
96
113
  end
97
114
 
98
115
  describe "#to_bson/#from_bson" do
@@ -417,6 +417,13 @@ describe BSON::ObjectId do
417
417
  end
418
418
  end
419
419
 
420
+ context "when the string contains newlines" do
421
+
422
+ it "returns false" do
423
+ expect(described_class).to_not be_legal("\n\n" + "a" * 24 + "\n\n")
424
+ end
425
+ end
426
+
420
427
  context "when checking against another object id" do
421
428
 
422
429
  let(:object_id) do
@@ -46,6 +46,22 @@ describe Regexp do
46
46
 
47
47
  it_behaves_like "a bson element"
48
48
 
49
+ context "when calling normal regexp methods on a Regexp::Raw" do
50
+ let :obj do
51
+ /\d+/
52
+ end
53
+
54
+ let :bson do
55
+ [obj.source, BSON::NULL_BYTE, BSON::NULL_BYTE].join ''
56
+ end
57
+
58
+ it_behaves_like "a serializable bson element"
59
+
60
+ it "runs the method on the Regexp object" do
61
+ expect(result.match('6')).not_to be_nil
62
+ end
63
+ end
64
+
49
65
  context "when the regexp has no options" do
50
66
 
51
67
  let(:obj) { /\d+/ }
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: 3.0.4
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Brock
@@ -34,7 +34,7 @@ cert_chain:
34
34
  XZOS48LlWh15EG4yZo/gRzqNAW2LUIkYA5eMS2Kp6r+KV8IBUO/LaHdrXbdilpa8
35
35
  BRsuCo7UZDbFVRns04HLyjVvkj+K/ywIcdKdS0csz5M=
36
36
  -----END CERTIFICATE-----
37
- date: 2015-06-04 00:00:00.000000000 Z
37
+ date: 2015-06-11 00:00:00.000000000 Z
38
38
  dependencies: []
39
39
  description: A full featured BSON specification implementation, in Ruby
40
40
  email:
metadata.gz.sig CHANGED
Binary file