bson 3.2.4-java → 3.2.6-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
  SHA1:
3
- metadata.gz: c56b5705464d23f23e17cb6075facfe3a0920507
4
- data.tar.gz: 7026777dc603e8c421e7484f00a196580a0a5c34
3
+ metadata.gz: b54a207fcf892998eddef3722b31d1007cb2d2ed
4
+ data.tar.gz: b2f341d0bd70e96f9fde14f70fcb41aa13603c31
5
5
  SHA512:
6
- metadata.gz: e14b929b5918634f7a0fc6f92776150715ae4514a7aa2ee063c1be773c7cf42b41840cd605d70a76255acb3baee828d5ec59215e3f5635c535167860adb7bc21
7
- data.tar.gz: ac58c8d00dc791fdf507f058d409f82283eeab622af37cb30ef0c3eba680364cda0bb13c36a4cc5f4c47c18d554f3478d62b4235e859b53d263eedac568f7c6c
6
+ metadata.gz: 19645bb9a29de8bf44f8494a487c42aa8d5305ac37ef1ef5ce3cb9201c1b242a0c2c2bcf9e19872b7a0e49257c4dd46ef1f5968616cac1606296a6f5ce4deaf1
7
+ data.tar.gz: 5e402c6f0af5a8a9960cf757717ae1827b5ffe130eda593065d600e64217b822d7540ddcff683233102645cf954f318f997a5596bef18ea7aceaeb07d41988f7
@@ -1,2 +1 @@
1
- F�"x��Qmt���L
2
- �O��0ղ�sQ�ƶ��I�+X�G6&d�y��x�u tDj)�G�A��-��a�dO����T�%� /q��gC ��@�YP�â�������_"�@���ͳ嶑�%�٬�҆6F�^T��R� A {O~*&�owu���)�ˇ�L������VA�)x�?P?����K��q��l�I�{|�"պ��s������!�F'�*0���\�i��Y�7^V���_{7�!z�p�s�f�%A�
1
+ ��[�^��烍�����hLpU�q�D4����m!E‰F�ާ�)��d5�h%�?�Ҏ���4ʄ�%�p��hYFT4���Xɠ�V):�I��������������bI٤ ҥga[(3jۋӑ�v�%:�X�?!�q�cjo���O0�YJ�)?ݠ���U�P�*|�\��^2�s�X�d�>96�$U���O,�ǧ��?���]�AP�Wvnh۾��k���X-mIݱ�4��:Yj@�ky_�$�%e��
data.tar.gz.sig CHANGED
Binary file
@@ -1,6 +1,20 @@
1
1
  BSON Changelog
2
2
  ==============
3
3
 
4
+ ## 3.2.6
5
+
6
+ ### Bug Fixes
7
+
8
+ * [#44](https://github.com/mongodb/bson-ruby/pull/44) Fixed regexp deserialization in
9
+ conjunction with SSL io. (Niels Ganser)
10
+
11
+ ## 3.2.5
12
+
13
+ ### Bug Fixes
14
+
15
+ * [RUBY-1024](https://jira.mongodb.org/browse/RUBY-1024) Fixed Hash#merge only to yield when keys
16
+ exist in both hashes. (Agis Anastasopoulos)
17
+
4
18
  ## 3.2.4
5
19
 
6
20
  ### Bug Fixes
data/Rakefile CHANGED
@@ -47,11 +47,7 @@ def extension
47
47
  RUBY_PLATFORM =~ /darwin/ ? "bundle" : "so"
48
48
  end
49
49
 
50
- if RUBY_VERSION < "1.9"
51
- require "perf/bench"
52
- else
53
- require_relative "perf/bench"
54
- end
50
+ require_relative "perf/bench" unless jruby?
55
51
 
56
52
  RSpec::Core::RakeTask.new(:spec)
57
53
  RSpec::Core::RakeTask.new(:rspec)
@@ -114,6 +110,12 @@ namespace :benchmark do
114
110
  require "bson"
115
111
  benchmark!
116
112
  end
113
+
114
+ task :profile => :compile do
115
+ puts "Profiling with native extensions..."
116
+ require "bson"
117
+ profile!
118
+ end
117
119
  end
118
120
 
119
121
  task :default => [ :clean_all, :spec, :ext_spec ]
Binary file
@@ -110,7 +110,7 @@ module BSON
110
110
  # @since 3.0.0
111
111
  def merge!(other)
112
112
  other.each_pair do |key, value|
113
- value = yield(convert_key(key), self[key], convert_value(value)) if block_given?
113
+ value = yield(convert_key(key), self[key], convert_value(value)) if block_given? && self[key]
114
114
  self[key] = value
115
115
  end
116
116
  self
@@ -28,6 +28,31 @@ module BSON
28
28
  # @since 2.0.0
29
29
  BSON_TYPE = 11.chr.force_encoding(BINARY).freeze
30
30
 
31
+ # Extended value constant.
32
+ #
33
+ # @since 3.2.6
34
+ EXTENDED_VALUE = 'x'.freeze
35
+
36
+ # Ignore case constant.
37
+ #
38
+ # @since 3.2.6
39
+ IGNORECASE_VALUE = 'i'.freeze
40
+
41
+ # Multiline constant.
42
+ #
43
+ # @since 3.2.6
44
+ MULTILINE_VALUE = 'm'.freeze
45
+
46
+ # Newline constant.
47
+ #
48
+ # @since 3.2.6
49
+ NEWLINE_VALUE = 's'.freeze
50
+
51
+ # Ruby multiline constant.
52
+ #
53
+ # @since 3.2.6
54
+ RUBY_MULTILINE_VALUE = 'ms'.freeze
55
+
31
56
  # Get the regexp as JSON hash data.
32
57
  #
33
58
  # @example Get the regexp as a JSON hash.
@@ -71,15 +96,15 @@ module BSON
71
96
  end
72
97
 
73
98
  def bson_extended
74
- (options & ::Regexp::EXTENDED != 0) ? "x" : NO_VALUE
99
+ (options & ::Regexp::EXTENDED != 0) ? EXTENDED_VALUE : NO_VALUE
75
100
  end
76
101
 
77
102
  def bson_ignorecase
78
- (options & ::Regexp::IGNORECASE != 0) ? "i" : NO_VALUE
103
+ (options & ::Regexp::IGNORECASE != 0) ? IGNORECASE_VALUE : NO_VALUE
79
104
  end
80
105
 
81
106
  def bson_multiline
82
- (options & ::Regexp::MULTILINE != 0) ? "ms" : NO_VALUE
107
+ (options & ::Regexp::MULTILINE != 0) ? RUBY_MULTILINE_VALUE : NO_VALUE
83
108
  end
84
109
 
85
110
  # Represents the raw values for the regular expression.
@@ -153,13 +178,13 @@ module BSON
153
178
  def from_bson(bson)
154
179
  pattern = bson.gets(NULL_BYTE).from_bson_string.chop!
155
180
  options = 0
156
- while (option = bson.readbyte) != 0
181
+ while (option = bson.readbyte.chr) != NULL_BYTE
157
182
  case option
158
- when 105 # 'i'
183
+ when IGNORECASE_VALUE
159
184
  options |= ::Regexp::IGNORECASE
160
- when 109, 115 # 'm', 's'
185
+ when MULTILINE_VALUE, NEWLINE_VALUE
161
186
  options |= ::Regexp::MULTILINE
162
- when 120 # 'x'
187
+ when EXTENDED_VALUE
163
188
  options |= ::Regexp::EXTENDED
164
189
  end
165
190
  end
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module BSON
16
- VERSION = "3.2.4"
16
+ VERSION = "3.2.6"
17
17
  end
@@ -439,7 +439,7 @@ describe BSON::Document do
439
439
  it "executes the block on each merged element" do
440
440
  expect(merged[:a]).to eq(0)
441
441
  expect(merged[:b]).to eq(3)
442
- expect(merged[:c]).to eq(8)
442
+ expect(merged[:c]).to eq(7)
443
443
  end
444
444
  end
445
445
  end
@@ -488,7 +488,17 @@ describe BSON::Document do
488
488
  it "executes the block on each merged element" do
489
489
  expect(other[:a]).to eq(0)
490
490
  expect(other[:b]).to eq(3)
491
- expect(other[:c]).to eq(8)
491
+ expect(other[:c]).to eq(7)
492
+ end
493
+ end
494
+
495
+ context "and the documents have no common keys" do
496
+ before { other[:a] = 1 }
497
+
498
+ it "does not execute the block" do
499
+ expect(other.merge(b: 1) { |key, old, new| old + new }).to eq(
500
+ BSON::Document.new(a: 1, b: 1)
501
+ )
492
502
  end
493
503
  end
494
504
  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: 3.2.4
4
+ version: 3.2.6
5
5
  platform: java
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-09-04 00:00:00.000000000 Z
37
+ date: 2015-10-08 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
@@ -1,4 +1,2 @@
1
- [j��F�k��ع "�݋��5�o�a�x�XQ��0���0h�6wIF!8�J�:O?2�v
2
- �ά�������sg�`�e9�}D|$��,���V1Od����L&i<�y&���ʠ��i����4 @Ú#;UP����ɧ#�S�����(��
3
- J:�`I�5��J����w����4�_R��VЂWJG�)���)M:-�Nğ�%��A��W�*� FF�"Do
4
- EkW͓���W���!I~��T��w��s�/쯼
1
+ ��0$)w<�w���p�`,��'[\�Y�٣���nDg�` �@�?�F�!����1Y=�
2
+ sR�������E�/��oyS{�Á -��Y���}��y�ˡ��]�P��ߴ��M7��LyŊd7c���