amq-protocol 2.3.1 → 2.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +9 -1
- data/lib/amq/protocol/table_value_encoder.rb +2 -2
- data/lib/amq/protocol/version.rb +1 -1
- data/spec/amq/protocol/table_spec.rb +12 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3952d1aea112b833a87bc1dc5f4a48b30b3203cc6916ea94e6489a233e4f07e
|
4
|
+
data.tar.gz: a9c2c60ac42dfbf18fcfc9c91ab146c5db2501c51ab96047129f0d3e17c6d51d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e20cc9579e2fd2d6750d0ca1201786ab73635a21d5783ef2f14a115dbcfe524b3561abd7a835c0f925c638c5164f72139a717b0c43b1303470295d3fa06494c
|
7
|
+
data.tar.gz: da6ecba234868b2a2bd5035cb1df2f5687e8b58e886f64bd1b99530419767ce53f30c6f89ec11395e91d163fbe5ee2e1a54dd3686735d6a51bf936b85f93bda0
|
data/ChangeLog.md
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
-
## Changes between 2.3.
|
1
|
+
## Changes between 2.3.2 and 2.3.3 (unreleased)
|
2
2
|
|
3
3
|
No changes yet.
|
4
4
|
|
5
|
+
## Changes between 2.3.1 and 2.3.2 (July 10th, 2020)
|
6
|
+
|
7
|
+
### Safer Encoding Handling When Serialising Message Properties and Headers
|
8
|
+
|
9
|
+
Contributed by @bbascarevic-tti.
|
10
|
+
|
11
|
+
GitHub issue: [ruby-amqp/amq-protocol#76](https://github.com/ruby-amqp/amq-protocol/issues/76)
|
12
|
+
|
5
13
|
|
6
14
|
## Changes between 2.3.0 and 2.3.1 (April 8th, 2020)
|
7
15
|
|
@@ -27,12 +27,12 @@ module AMQ
|
|
27
27
|
when String then
|
28
28
|
accumulator << TYPE_STRING
|
29
29
|
accumulator << [value.bytesize].pack(PACK_UINT32)
|
30
|
-
accumulator << value
|
30
|
+
accumulator << value.dup.force_encoding(accumulator.encoding)
|
31
31
|
when Symbol then
|
32
32
|
str = value.to_s
|
33
33
|
accumulator << TYPE_STRING
|
34
34
|
accumulator << [str.bytesize].pack(PACK_UINT32)
|
35
|
-
accumulator << str
|
35
|
+
accumulator << str.force_encoding(accumulator.encoding)
|
36
36
|
when Integer then
|
37
37
|
accumulator << TYPE_SIGNED_64BIT
|
38
38
|
accumulator << [value].pack(PACK_INT64_BE)
|
data/lib/amq/protocol/version.rb
CHANGED
@@ -46,6 +46,16 @@ module AMQ
|
|
46
46
|
to eql("\x00\x00\x00$\vcoordinatesF\x00\x00\x00\x13\tlongituded@2\x11\x11\x16\xA8\xB8\xF1".force_encoding(Encoding::ASCII_8BIT))
|
47
47
|
end
|
48
48
|
|
49
|
+
it "should serialize long UTF-8 strings and symbols" do
|
50
|
+
long_utf8 = "à" * 192
|
51
|
+
long_ascii8 = long_utf8.dup.force_encoding(::Encoding::ASCII_8BIT)
|
52
|
+
|
53
|
+
input = { "utf8_string" => long_utf8, "utf8_symbol" => long_utf8.to_sym }
|
54
|
+
output = { "utf8_string" => long_ascii8, "utf8_symbol" => long_ascii8 }
|
55
|
+
|
56
|
+
expect(Table.decode(Table.encode(input))).to eq(output)
|
57
|
+
end
|
58
|
+
|
49
59
|
DATA.each do |data, encoded|
|
50
60
|
it "should return #{encoded.inspect} for #{data.inspect}" do
|
51
61
|
expect(Table.encode(data)).to eql(encoded.force_encoding(Encoding::ASCII_8BIT))
|
@@ -204,7 +214,7 @@ module AMQ
|
|
204
214
|
"rev" => 1.0,
|
205
215
|
"spec" => {
|
206
216
|
"url" => "http://bit.ly/hw2ELX",
|
207
|
-
"utf8" => "à bientôt"
|
217
|
+
"utf8" => "à bientôt"
|
208
218
|
}
|
209
219
|
},
|
210
220
|
"true" => true,
|
@@ -212,7 +222,7 @@ module AMQ
|
|
212
222
|
"nil" => nil
|
213
223
|
}
|
214
224
|
}
|
215
|
-
expect(Table.decode(Table.encode(input))).to eq(input)
|
225
|
+
expect(Table.decode(Table.encode(input))).to eq(input.tap { |r| r["hashval"]["protocol"]["spec"]["utf8"].force_encoding(::Encoding::ASCII_8BIT) })
|
216
226
|
end
|
217
227
|
|
218
228
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amq-protocol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Stastny
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-
|
14
|
+
date: 2020-07-10 00:00:00.000000000 Z
|
15
15
|
dependencies: []
|
16
16
|
description: |2
|
17
17
|
amq-protocol is an AMQP 0.9.1 serialization library for Ruby. It is not a
|
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
|
-
rubygems_version: 3.
|
104
|
+
rubygems_version: 3.1.2
|
105
105
|
signing_key:
|
106
106
|
specification_version: 4
|
107
107
|
summary: AMQP 0.9.1 encoding & decoding library.
|