amq-protocol 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +5 -4
- data/ChangeLog.md +15 -1
- data/codegen/codegen.py +3 -3
- data/codegen/codegen_helpers.py +7 -5
- data/codegen/protocol.rb.pytemplate +1 -1
- data/generate.rb +6 -2
- data/lib/amq/protocol/client.rb +31 -31
- data/lib/amq/protocol/constants.rb +1 -0
- data/lib/amq/protocol/table_value_decoder.rb +1 -1
- data/lib/amq/protocol/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d8c34cb05958c71cc0a6ec3c52b24bfb6939dd4
|
4
|
+
data.tar.gz: 62b732a3fbae0803d246e4bf67a9666222004c5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70d31ca38bb0208b3c8246e19dd43bcc4a5ddd9fc57cfc5b410cc8e942c823031c3a31f52732909170ce6352e0a85dbac2daf7ede84ecc85ca968482ad9cdadb
|
7
|
+
data.tar.gz: cf2d8b74629d4e457a79ca52027831c37bd77ae6dc05130edac2fcc2ec8f8aea38f69533394b8c17060cfb4c1738ba16d0b2d0b97ec58fe67d080eaeb30a4f63
|
data/.travis.yml
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,4 +1,18 @@
|
|
1
|
-
## Changes between 2.
|
1
|
+
## Changes between 2.1.0 and 2.2.0 (unreleased)
|
2
|
+
|
3
|
+
### Timestamps are Encoded as 64-bit Unsigned Integers
|
4
|
+
|
5
|
+
This is a potentially **breaking change**. It is recommended that
|
6
|
+
all applications that use this gem and pass date/time values in message
|
7
|
+
properties or headers are upgraded at the same time.
|
8
|
+
|
9
|
+
GitHub issue: [#64](https://github.com/ruby-amqp/amq-protocol/issues/64).
|
10
|
+
|
11
|
+
Contributed by Carl Hoerberg.
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
## Changes between 2.0.0 and 2.1.0 (January 28th, 2017)
|
2
16
|
|
3
17
|
### Ruby Warnings Squashed
|
4
18
|
|
data/codegen/codegen.py
CHANGED
@@ -12,7 +12,7 @@ from amqp_codegen import *
|
|
12
12
|
try:
|
13
13
|
from mako.template import Template
|
14
14
|
except ImportError:
|
15
|
-
print
|
15
|
+
print("Mako isn't installed. Please install mako via pip or similar.")
|
16
16
|
sys.exit(1)
|
17
17
|
|
18
18
|
# main class
|
@@ -57,7 +57,7 @@ AmqpEntity.__init__ = new_init
|
|
57
57
|
|
58
58
|
# method.accepted_by("server")
|
59
59
|
# method.accepted_by("client", "server")
|
60
|
-
accepted_by_update = json.loads(
|
60
|
+
accepted_by_update = json.loads(open("codegen/amqp_0.9.1_changes.json").read())
|
61
61
|
|
62
62
|
def accepted_by(self, *receivers):
|
63
63
|
def get_accepted_by(self):
|
@@ -143,7 +143,7 @@ def generateMain(type):
|
|
143
143
|
def main(json_spec_path):
|
144
144
|
spec = AmqpSpecObject(json_spec_path)
|
145
145
|
spec.type = type
|
146
|
-
print
|
146
|
+
print(render("codegen/protocol.rb.pytemplate", spec = spec))
|
147
147
|
|
148
148
|
return main
|
149
149
|
|
data/codegen/codegen_helpers.py
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
+
from __future__ import print_function
|
4
|
+
|
3
5
|
def genSingleEncode(spec, cValue, unresolved_domain):
|
4
6
|
buffer = []
|
5
7
|
type = spec.resolveDomain(unresolved_domain)
|
@@ -24,7 +26,7 @@ def genSingleEncode(spec, cValue, unresolved_domain):
|
|
24
26
|
elif type == 'table':
|
25
27
|
buffer.append("buffer << AMQ::Protocol::Table.encode(%s)" % (cValue,))
|
26
28
|
else:
|
27
|
-
raise "Illegal domain in genSingleEncode"
|
29
|
+
raise "Illegal domain in genSingleEncode: {0}".format(type)
|
28
30
|
|
29
31
|
return buffer
|
30
32
|
|
@@ -34,7 +36,7 @@ def genSingleDecode(spec, field):
|
|
34
36
|
|
35
37
|
if cLvalue == "known_hosts":
|
36
38
|
import sys
|
37
|
-
print
|
39
|
+
print(field, field.ignored, file = sys.stderr)
|
38
40
|
|
39
41
|
type = spec.resolveDomain(unresolved_domain)
|
40
42
|
buffer = []
|
@@ -61,7 +63,7 @@ def genSingleDecode(spec, field):
|
|
61
63
|
buffer.append("%s = AMQ::Pack.unpack_uint64_big_endian(data[offset, 8]).first" % (cLvalue,))
|
62
64
|
buffer.append("offset += 8")
|
63
65
|
elif type == 'timestamp':
|
64
|
-
buffer.append("%s = data[offset, 8].unpack(
|
66
|
+
buffer.append("%s = data[offset, 8].unpack(PACK_UINT64_BE).first" % (cLvalue,))
|
65
67
|
buffer.append("offset += 8")
|
66
68
|
elif type == 'bit':
|
67
69
|
raise "Can't decode bit in genSingleDecode"
|
@@ -70,7 +72,7 @@ def genSingleDecode(spec, field):
|
|
70
72
|
buffer.append("%s = Table.decode(data[offset, table_length + 4])" % (cLvalue,))
|
71
73
|
buffer.append("offset += table_length + 4")
|
72
74
|
else:
|
73
|
-
raise StandardError("Illegal domain '
|
75
|
+
raise StandardError("Illegal domain '{0}' in genSingleDecode".format(type))
|
74
76
|
|
75
77
|
return buffer
|
76
78
|
|
@@ -99,7 +101,7 @@ def genSingleSimpleDecode(spec, field):
|
|
99
101
|
elif type == 'longlong':
|
100
102
|
buffer.append("AMQ::Pack.unpack_uint64_big_endian(data).first")
|
101
103
|
elif type == 'timestamp':
|
102
|
-
buffer.append("Time.at(data.unpack(
|
104
|
+
buffer.append("Time.at(data.unpack(PACK_UINT64_BE).last)")
|
103
105
|
elif type == 'bit':
|
104
106
|
raise "Can't decode bit in genSingleDecode"
|
105
107
|
elif type == 'table':
|
@@ -212,7 +212,7 @@ module AMQ
|
|
212
212
|
result = data[offset, size].unpack(PACK_CHAR).first
|
213
213
|
when :timestamp
|
214
214
|
size = 8
|
215
|
-
result = Time.at(data[offset, size].unpack(
|
215
|
+
result = Time.at(data[offset, size].unpack(PACK_UINT64_BE).last)
|
216
216
|
when :table
|
217
217
|
size = 4 + data[offset, 4].unpack(PACK_UINT32)[0]
|
218
218
|
result = Table.decode(data[offset, size])
|
data/generate.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
3
|
|
4
|
+
# rabbitmq-codegen is Python 3 compatible and so is
|
5
|
+
# the code in this repo but Mako still fails with 3.6 as of May 2017 :( MK.
|
6
|
+
python = ENV.fetch("PYTHON", "python2")
|
7
|
+
|
4
8
|
def sh(*args)
|
5
9
|
system(*args)
|
6
10
|
end
|
@@ -13,8 +17,8 @@ unless File.exist?(spec)
|
|
13
17
|
end
|
14
18
|
|
15
19
|
path = "lib/amq/protocol/client.rb"
|
16
|
-
puts "Running ./codegen/codegen.py client #{spec} #{path}"
|
17
|
-
sh "./codegen/codegen.py client #{spec} #{extensions.join(' ')} #{path}"
|
20
|
+
puts "Running '#{python} ./codegen/codegen.py client #{spec} #{extensions.join(' ')} #{path}'"
|
21
|
+
sh "#{python} ./codegen/codegen.py client #{spec} #{extensions.join(' ')} #{path}"
|
18
22
|
if File.file?(path)
|
19
23
|
sh "ruby -c #{path}"
|
20
24
|
end
|
data/lib/amq/protocol/client.rb
CHANGED
@@ -251,7 +251,7 @@ module AMQ
|
|
251
251
|
end
|
252
252
|
|
253
253
|
# @return
|
254
|
-
# [
|
254
|
+
# ['client_properties = nil', "mechanism = 'PLAIN'", 'response = nil', "locale = 'en_US'"]
|
255
255
|
def self.encode(client_properties, mechanism, response, locale)
|
256
256
|
channel = 0
|
257
257
|
buffer = @packed_indexes.dup
|
@@ -307,7 +307,7 @@ module AMQ
|
|
307
307
|
end
|
308
308
|
|
309
309
|
# @return
|
310
|
-
# [
|
310
|
+
# ['response = nil']
|
311
311
|
def self.encode(response)
|
312
312
|
channel = 0
|
313
313
|
buffer = @packed_indexes.dup
|
@@ -362,7 +362,7 @@ module AMQ
|
|
362
362
|
end
|
363
363
|
|
364
364
|
# @return
|
365
|
-
# [
|
365
|
+
# ['channel_max = false', 'frame_max = false', 'heartbeat = false']
|
366
366
|
def self.encode(channel_max, frame_max, heartbeat)
|
367
367
|
channel = 0
|
368
368
|
buffer = @packed_indexes.dup
|
@@ -386,7 +386,7 @@ module AMQ
|
|
386
386
|
end
|
387
387
|
|
388
388
|
# @return
|
389
|
-
# [
|
389
|
+
# ["virtual_host = '/'", 'capabilities = EMPTY_STRING', 'insist = false']
|
390
390
|
def self.encode(virtual_host)
|
391
391
|
capabilities = EMPTY_STRING
|
392
392
|
insist = false
|
@@ -467,7 +467,7 @@ module AMQ
|
|
467
467
|
end
|
468
468
|
|
469
469
|
# @return
|
470
|
-
# [
|
470
|
+
# ['reply_code = nil', 'reply_text = EMPTY_STRING', 'class_id = nil', 'method_id = nil']
|
471
471
|
def self.encode(reply_code, reply_text, class_id, method_id)
|
472
472
|
channel = 0
|
473
473
|
buffer = @packed_indexes.dup
|
@@ -536,7 +536,7 @@ module AMQ
|
|
536
536
|
end
|
537
537
|
|
538
538
|
# @return
|
539
|
-
# [
|
539
|
+
# ['reason = EMPTY_STRING']
|
540
540
|
def self.encode(reason)
|
541
541
|
channel = 0
|
542
542
|
buffer = @packed_indexes.dup
|
@@ -596,7 +596,7 @@ module AMQ
|
|
596
596
|
end
|
597
597
|
|
598
598
|
# @return
|
599
|
-
# [
|
599
|
+
# ['out_of_band = EMPTY_STRING']
|
600
600
|
def self.encode(channel, out_of_band)
|
601
601
|
buffer = @packed_indexes.dup
|
602
602
|
buffer << out_of_band.to_s.bytesize.chr
|
@@ -659,7 +659,7 @@ module AMQ
|
|
659
659
|
end
|
660
660
|
|
661
661
|
# @return
|
662
|
-
# [
|
662
|
+
# ['active = nil']
|
663
663
|
def self.encode(channel, active)
|
664
664
|
buffer = @packed_indexes.dup
|
665
665
|
bit_buffer = 0
|
@@ -695,7 +695,7 @@ module AMQ
|
|
695
695
|
end
|
696
696
|
|
697
697
|
# @return
|
698
|
-
# [
|
698
|
+
# ['active = nil']
|
699
699
|
def self.encode(channel, active)
|
700
700
|
buffer = @packed_indexes.dup
|
701
701
|
bit_buffer = 0
|
@@ -741,7 +741,7 @@ module AMQ
|
|
741
741
|
end
|
742
742
|
|
743
743
|
# @return
|
744
|
-
# [
|
744
|
+
# ['reply_code = nil', 'reply_text = EMPTY_STRING', 'class_id = nil', 'method_id = nil']
|
745
745
|
def self.encode(channel, reply_code, reply_text, class_id, method_id)
|
746
746
|
buffer = @packed_indexes.dup
|
747
747
|
buffer << [reply_code].pack(PACK_UINT16)
|
@@ -802,7 +802,7 @@ module AMQ
|
|
802
802
|
end
|
803
803
|
|
804
804
|
# @return
|
805
|
-
# [
|
805
|
+
# ['ticket = 0', 'exchange = nil', "type = 'direct'", 'passive = false', 'durable = false', 'auto_delete = false', 'internal = false', 'nowait = false', 'arguments = {}']
|
806
806
|
def self.encode(channel, exchange, type, passive, durable, auto_delete, internal, nowait, arguments)
|
807
807
|
ticket = 0
|
808
808
|
buffer = @packed_indexes.dup
|
@@ -858,7 +858,7 @@ module AMQ
|
|
858
858
|
end
|
859
859
|
|
860
860
|
# @return
|
861
|
-
# [
|
861
|
+
# ['ticket = 0', 'exchange = nil', 'if_unused = false', 'nowait = false']
|
862
862
|
def self.encode(channel, exchange, if_unused, nowait)
|
863
863
|
ticket = 0
|
864
864
|
buffer = @packed_indexes.dup
|
@@ -908,7 +908,7 @@ module AMQ
|
|
908
908
|
end
|
909
909
|
|
910
910
|
# @return
|
911
|
-
# [
|
911
|
+
# ['ticket = 0', 'destination = nil', 'source = nil', 'routing_key = EMPTY_STRING', 'nowait = false', 'arguments = {}']
|
912
912
|
def self.encode(channel, destination, source, routing_key, nowait, arguments)
|
913
913
|
ticket = 0
|
914
914
|
buffer = @packed_indexes.dup
|
@@ -962,7 +962,7 @@ module AMQ
|
|
962
962
|
end
|
963
963
|
|
964
964
|
# @return
|
965
|
-
# [
|
965
|
+
# ['ticket = 0', 'destination = nil', 'source = nil', 'routing_key = EMPTY_STRING', 'nowait = false', 'arguments = {}']
|
966
966
|
def self.encode(channel, destination, source, routing_key, nowait, arguments)
|
967
967
|
ticket = 0
|
968
968
|
buffer = @packed_indexes.dup
|
@@ -1024,7 +1024,7 @@ module AMQ
|
|
1024
1024
|
end
|
1025
1025
|
|
1026
1026
|
# @return
|
1027
|
-
# [
|
1027
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'passive = false', 'durable = false', 'exclusive = false', 'auto_delete = false', 'nowait = false', 'arguments = {}']
|
1028
1028
|
def self.encode(channel, queue, passive, durable, exclusive, auto_delete, nowait, arguments)
|
1029
1029
|
ticket = 0
|
1030
1030
|
buffer = @packed_indexes.dup
|
@@ -1090,7 +1090,7 @@ module AMQ
|
|
1090
1090
|
end
|
1091
1091
|
|
1092
1092
|
# @return
|
1093
|
-
# [
|
1093
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'exchange = nil', 'routing_key = EMPTY_STRING', 'nowait = false', 'arguments = {}']
|
1094
1094
|
def self.encode(channel, queue, exchange, routing_key, nowait, arguments)
|
1095
1095
|
ticket = 0
|
1096
1096
|
buffer = @packed_indexes.dup
|
@@ -1144,7 +1144,7 @@ module AMQ
|
|
1144
1144
|
end
|
1145
1145
|
|
1146
1146
|
# @return
|
1147
|
-
# [
|
1147
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'nowait = false']
|
1148
1148
|
def self.encode(channel, queue, nowait)
|
1149
1149
|
ticket = 0
|
1150
1150
|
buffer = @packed_indexes.dup
|
@@ -1197,7 +1197,7 @@ module AMQ
|
|
1197
1197
|
end
|
1198
1198
|
|
1199
1199
|
# @return
|
1200
|
-
# [
|
1200
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'if_unused = false', 'if_empty = false', 'nowait = false']
|
1201
1201
|
def self.encode(channel, queue, if_unused, if_empty, nowait)
|
1202
1202
|
ticket = 0
|
1203
1203
|
buffer = @packed_indexes.dup
|
@@ -1252,7 +1252,7 @@ module AMQ
|
|
1252
1252
|
end
|
1253
1253
|
|
1254
1254
|
# @return
|
1255
|
-
# [
|
1255
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'exchange = nil', 'routing_key = EMPTY_STRING', 'arguments = {}']
|
1256
1256
|
def self.encode(channel, queue, exchange, routing_key, arguments)
|
1257
1257
|
ticket = 0
|
1258
1258
|
buffer = @packed_indexes.dup
|
@@ -1515,7 +1515,7 @@ module AMQ
|
|
1515
1515
|
result = data[offset, size].unpack(PACK_CHAR).first
|
1516
1516
|
when :timestamp
|
1517
1517
|
size = 8
|
1518
|
-
result = Time.at(data[offset, size].unpack(
|
1518
|
+
result = Time.at(data[offset, size].unpack(PACK_UINT64_BE).last)
|
1519
1519
|
when :table
|
1520
1520
|
size = 4 + data[offset, 4].unpack(PACK_UINT32)[0]
|
1521
1521
|
result = Table.decode(data[offset, size])
|
@@ -1540,7 +1540,7 @@ module AMQ
|
|
1540
1540
|
end
|
1541
1541
|
|
1542
1542
|
# @return
|
1543
|
-
# [
|
1543
|
+
# ['prefetch_size = false', 'prefetch_count = false', 'global = false']
|
1544
1544
|
def self.encode(channel, prefetch_size, prefetch_count, global)
|
1545
1545
|
buffer = @packed_indexes.dup
|
1546
1546
|
buffer << [prefetch_size].pack(PACK_UINT32)
|
@@ -1587,7 +1587,7 @@ module AMQ
|
|
1587
1587
|
end
|
1588
1588
|
|
1589
1589
|
# @return
|
1590
|
-
# [
|
1590
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'consumer_tag = EMPTY_STRING', 'no_local = false', 'no_ack = false', 'exclusive = false', 'nowait = false', 'arguments = {}']
|
1591
1591
|
def self.encode(channel, queue, consumer_tag, no_local, no_ack, exclusive, nowait, arguments)
|
1592
1592
|
ticket = 0
|
1593
1593
|
buffer = @packed_indexes.dup
|
@@ -1666,7 +1666,7 @@ module AMQ
|
|
1666
1666
|
end
|
1667
1667
|
|
1668
1668
|
# @return
|
1669
|
-
# [
|
1669
|
+
# ['consumer_tag = nil', 'nowait = false']
|
1670
1670
|
def self.encode(channel, consumer_tag, nowait)
|
1671
1671
|
buffer = @packed_indexes.dup
|
1672
1672
|
buffer << consumer_tag.to_s.bytesize.chr
|
@@ -1719,7 +1719,7 @@ module AMQ
|
|
1719
1719
|
end
|
1720
1720
|
|
1721
1721
|
# @return
|
1722
|
-
# [
|
1722
|
+
# ['ticket = 0', 'exchange = EMPTY_STRING', 'routing_key = EMPTY_STRING', 'mandatory = false', 'immediate = false', 'user_headers = nil', 'payload = ""', 'frame_size = nil']
|
1723
1723
|
def self.encode(channel, payload, user_headers, exchange, routing_key, mandatory, immediate, frame_size)
|
1724
1724
|
ticket = 0
|
1725
1725
|
buffer = @packed_indexes.dup
|
@@ -1843,7 +1843,7 @@ module AMQ
|
|
1843
1843
|
end
|
1844
1844
|
|
1845
1845
|
# @return
|
1846
|
-
# [
|
1846
|
+
# ['ticket = 0', 'queue = EMPTY_STRING', 'no_ack = false']
|
1847
1847
|
def self.encode(channel, queue, no_ack)
|
1848
1848
|
ticket = 0
|
1849
1849
|
buffer = @packed_indexes.dup
|
@@ -1957,7 +1957,7 @@ module AMQ
|
|
1957
1957
|
end
|
1958
1958
|
|
1959
1959
|
# @return
|
1960
|
-
# [
|
1960
|
+
# ['delivery_tag = false', 'multiple = false']
|
1961
1961
|
def self.encode(channel, delivery_tag, multiple)
|
1962
1962
|
buffer = @packed_indexes.dup
|
1963
1963
|
buffer << AMQ::Pack.pack_uint64_big_endian(delivery_tag)
|
@@ -1981,7 +1981,7 @@ module AMQ
|
|
1981
1981
|
end
|
1982
1982
|
|
1983
1983
|
# @return
|
1984
|
-
# [
|
1984
|
+
# ['delivery_tag = nil', 'requeue = true']
|
1985
1985
|
def self.encode(channel, delivery_tag, requeue)
|
1986
1986
|
buffer = @packed_indexes.dup
|
1987
1987
|
buffer << AMQ::Pack.pack_uint64_big_endian(delivery_tag)
|
@@ -2005,7 +2005,7 @@ module AMQ
|
|
2005
2005
|
end
|
2006
2006
|
|
2007
2007
|
# @return
|
2008
|
-
# [
|
2008
|
+
# ['requeue = false']
|
2009
2009
|
def self.encode(channel, requeue)
|
2010
2010
|
buffer = @packed_indexes.dup
|
2011
2011
|
bit_buffer = 0
|
@@ -2028,7 +2028,7 @@ module AMQ
|
|
2028
2028
|
end
|
2029
2029
|
|
2030
2030
|
# @return
|
2031
|
-
# [
|
2031
|
+
# ['requeue = false']
|
2032
2032
|
def self.encode(channel, requeue)
|
2033
2033
|
buffer = @packed_indexes.dup
|
2034
2034
|
bit_buffer = 0
|
@@ -2091,7 +2091,7 @@ module AMQ
|
|
2091
2091
|
end
|
2092
2092
|
|
2093
2093
|
# @return
|
2094
|
-
# [
|
2094
|
+
# ['delivery_tag = false', 'multiple = false', 'requeue = true']
|
2095
2095
|
def self.encode(channel, delivery_tag, multiple, requeue)
|
2096
2096
|
buffer = @packed_indexes.dup
|
2097
2097
|
buffer << AMQ::Pack.pack_uint64_big_endian(delivery_tag)
|
@@ -2271,7 +2271,7 @@ module AMQ
|
|
2271
2271
|
end
|
2272
2272
|
|
2273
2273
|
# @return
|
2274
|
-
# [
|
2274
|
+
# ['nowait = false']
|
2275
2275
|
def self.encode(channel, nowait)
|
2276
2276
|
buffer = @packed_indexes.dup
|
2277
2277
|
bit_buffer = 0
|
data/lib/amq/protocol/version.rb
CHANGED
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.
|
4
|
+
version: 2.2.0
|
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: 2017-
|
14
|
+
date: 2017-05-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
|
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
104
|
rubyforge_project: amq-protocol
|
105
|
-
rubygems_version: 2.
|
105
|
+
rubygems_version: 2.6.11
|
106
106
|
signing_key:
|
107
107
|
specification_version: 4
|
108
108
|
summary: AMQP 0.9.1 encoding & decoding library.
|