amq-protocol 2.1.0 → 2.2.0
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 +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.
|