bunny 2.8.1 → 2.9.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/CONTRIBUTING.md +14 -6
- data/ChangeLog.md +10 -11
- data/Gemfile +3 -3
- data/README.md +1 -1
- data/bunny.gemspec +2 -2
- data/docker-compose.yml +2 -0
- data/docker/docker-entrypoint.sh +1 -1
- data/lib/bunny/session.rb +2 -2
- data/lib/bunny/transport.rb +23 -8
- data/lib/bunny/version.rb +1 -1
- data/spec/higher_level_api/integration/connection_spec.rb +6 -2
- data/spec/higher_level_api/integration/tls_connection_spec.rb +41 -15
- data/spec/spec_helper.rb +1 -6
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bddad506ff3cf646d188ee710760ba6264f892e2
|
4
|
+
data.tar.gz: 8633350680a481c8244acc6c847994e087f0d278
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c38e6e5ba79c33cd79bc2e8fea5c2be0a1f23dce82816e3962f22965f6e98ac51ff30aad75c6f59e8fc165629878dc00d83cf74fdba51deb4bbe7b0874f34bcb
|
7
|
+
data.tar.gz: ca7f75991cec9ffa875c5e8a8870cba2e94433d63fe253971b21c0b3201a555046b0a6e68a416248b8c4ccdded30dc2aed2ed8e875fcec6a0960c8c142b5a766
|
data/CONTRIBUTING.md
CHANGED
@@ -39,7 +39,8 @@ running a RabbitMQ server in a Docker container.
|
|
39
39
|
|
40
40
|
#### Using a locally installed RabbitMQ server
|
41
41
|
|
42
|
-
|
42
|
+
It is possible to start a local RabbitMQ node from the repository root. It is not necessarily
|
43
|
+
optimal but can be a good starting point but is a useful example:
|
43
44
|
|
44
45
|
```
|
45
46
|
RABBITMQ_NODENAME=bunny RABBITMQ_CONFIG_FILE=./spec/config/rabbitmq RABBITMQ_ENABLED_PLUGINS_FILE=./spec/config/enabled_plugins rabbitmq-server
|
@@ -51,10 +52,17 @@ these. TLS (x509 PEM) certificates include a hostname-specific fields,
|
|
51
52
|
the tests allow for expecting hostname overriding using the `BUNNY_RABBITMQ_HOSTNAME`
|
52
53
|
environment variables (default value is `127.0.0.1`).
|
53
54
|
|
54
|
-
|
55
|
-
|
55
|
+
By default there's a set of CA, server, and client certificates pre-generated at `spec/tls`. Since x509 certificates
|
56
|
+
contain a hardcoded CN and your hostname is unlikely to match it,
|
57
|
+
the location can be overridden via the `BUNNY_CERTIFICATE_DIR` environment variable.
|
56
58
|
It is supposed to target [tls-gen](https://github.com/michaelklishin/tls-gen)'s basic profile
|
57
|
-
output (result) directory on the host where specs are to be executed.
|
59
|
+
output (result) directory on the host where specs are to be executed. Combine it with `BUNNY_RABBITMQ_HOSTNAME`
|
60
|
+
when running TLS connection tests:
|
61
|
+
|
62
|
+
```
|
63
|
+
BUNNY_CERTIFICATE_DIR="/path/to/tls-gen/basic/result" BUNNY_RABBITMQ_HOSTNAME="mayflower" bundle exec rspec
|
64
|
+
|
65
|
+
```
|
58
66
|
|
59
67
|
Next up you'll need to prepare your node for the specs (just once):
|
60
68
|
|
@@ -104,8 +112,8 @@ Make sure you have those two installed and then run integration tests:
|
|
104
112
|
|
105
113
|
It is possible to run all tests:
|
106
114
|
|
107
|
-
bundle exec rspec
|
115
|
+
bundle exec rspec
|
108
116
|
|
109
117
|
It is possible to run only integration and regression tests but exclude unit and stress tests:
|
110
118
|
|
111
|
-
CI=true bundle exec rspec
|
119
|
+
CI=true bundle exec rspec spec/higher_level_api/ spec/lower_level_api spec/issues spec/higher_level_api/integration/connection_recovery_spec.rb
|
data/ChangeLog.md
CHANGED
@@ -1,19 +1,18 @@
|
|
1
|
-
## Changes between Bunny 2.8.
|
1
|
+
## Changes between Bunny 2.8.0 and 2.9.0 (Jan 8th, 2018)
|
2
2
|
|
3
|
-
|
3
|
+
### Ruby 2.2 Requirement
|
4
4
|
|
5
|
+
Bunny now requires Ruby 2.2.
|
5
6
|
|
6
7
|
|
7
|
-
|
8
|
+
### Support for Additional URI Query Parameters
|
8
9
|
|
9
|
-
|
10
|
+
GitHub issue: [#534](https://github.com/ruby-amqp/bunny/pull/534).
|
10
11
|
|
11
|
-
|
12
|
+
Contributed by Andrew Babichev.
|
12
13
|
|
13
|
-
GitHub issue: [#538](https://github.com/ruby-amqp/bunny/issues/538).
|
14
14
|
|
15
|
-
|
16
|
-
## Changes between Bunny 2.7.0 and 2.8.0 (Dec 18th, 2017)
|
15
|
+
## Changes between Bunny 2.7.0 and 2.8.0 (Dec 18th, 2018)
|
17
16
|
|
18
17
|
This release has **minor breaking public API changes**.
|
19
18
|
|
@@ -32,7 +31,7 @@ A JRuby 9K compatibility issue was corrected by Marian Posăceanu.
|
|
32
31
|
Note that JRuby users are recommended to use [March Hare](http://rubymarchhare.info/), a JRuby-oriented client, instead
|
33
32
|
of Bunny.
|
34
33
|
|
35
|
-
GitHub issue: [
|
34
|
+
GitHub issue: [#529](https://github.com/ruby-amqp/bunny/pull/529)
|
36
35
|
|
37
36
|
### Connection Exceptions are Logged as Warning with Automatic Recovery
|
38
37
|
|
@@ -41,7 +40,7 @@ and not errors.
|
|
41
40
|
|
42
41
|
Contributed by Merten Falk.
|
43
42
|
|
44
|
-
GitHub issue: [
|
43
|
+
GitHub issue: [#531](https://github.com/ruby-amqp/bunny/pull/531)
|
45
44
|
|
46
45
|
### Server Heartbeat Value as a String
|
47
46
|
|
@@ -50,7 +49,7 @@ a symbol. This makes it easier to load settings from YAML files.
|
|
50
49
|
|
51
50
|
Contributed by Tyrone Wilson.
|
52
51
|
|
53
|
-
GitHub issue: [
|
52
|
+
GitHub issue: [#524](https://github.com/ruby-amqp/bunny/pull/524)
|
54
53
|
|
55
54
|
|
56
55
|
## Changes between Bunny 2.7.0 and 2.7.1 (Sep 25th, 2017)
|
data/Gemfile
CHANGED
@@ -33,7 +33,7 @@ end
|
|
33
33
|
|
34
34
|
group :test do
|
35
35
|
gem "rspec", "~> 3.5.0"
|
36
|
-
gem "rabbitmq_http_api_client", "~> 1.9.1"
|
36
|
+
gem "rabbitmq_http_api_client", "~> 1.9.1", require: "rabbitmq/http/client"
|
37
37
|
end
|
38
38
|
|
39
39
|
gemspec
|
@@ -43,11 +43,11 @@ gemspec
|
|
43
43
|
def custom_gem(name, options = Hash.new)
|
44
44
|
local_path = File.expand_path("../vendor/#{name}", __FILE__)
|
45
45
|
if File.exist?(local_path)
|
46
|
-
|
46
|
+
puts "Using #{name} from #{local_path}..."
|
47
47
|
gem name, options.merge(:path => local_path).delete_if { |key, _| [:git, :branch].include?(key) }
|
48
48
|
else
|
49
49
|
gem name, options
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
custom_gem "amq-protocol", "
|
53
|
+
custom_gem "amq-protocol", git: "https://github.com/ruby-amqp/amq-protocol", branch: "master"
|
data/README.md
CHANGED
data/bunny.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "Popular easy to use Ruby client for RabbitMQ"
|
12
12
|
s.description = "Easy to use, feature complete Ruby client for RabbitMQ 3.3 and later versions."
|
13
13
|
s.license = "MIT"
|
14
|
-
s.required_ruby_version = Gem::Requirement.new(">= 2.
|
14
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.2")
|
15
15
|
|
16
16
|
# Sorted alphabetically.
|
17
17
|
s.authors = [
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.email = ["michael.s.klishin@gmail.com"]
|
25
25
|
|
26
26
|
# Dependencies
|
27
|
-
s.add_dependency "amq-protocol", "
|
27
|
+
s.add_dependency "amq-protocol", ">= 2.2.0"
|
28
28
|
|
29
29
|
# Files.
|
30
30
|
s.has_rdoc = true
|
data/docker-compose.yml
CHANGED
@@ -5,6 +5,8 @@ services:
|
|
5
5
|
container_name: bunny_rabbitmq
|
6
6
|
environment:
|
7
7
|
RABBITMQ_NODENAME: bunny
|
8
|
+
# see CONTRIBUTING.md
|
9
|
+
BUNNY_RABBITMQ_HOSTNAME: mercurio
|
8
10
|
# link to spec specific configuration
|
9
11
|
RABBITMQ_CONFIG_FILE: /spec/config/rabbitmq
|
10
12
|
RABBITMQ_ENABLED_PLUGINS_FILE: /spec/config/enabled_plugins
|
data/docker/docker-entrypoint.sh
CHANGED
data/lib/bunny/session.rb
CHANGED
@@ -464,7 +464,7 @@ module Bunny
|
|
464
464
|
# @param [String] uri amqp or amqps URI to parse
|
465
465
|
# @return [Hash] Parsed URI as a hash
|
466
466
|
def self.parse_uri(uri)
|
467
|
-
AMQ::Settings.
|
467
|
+
AMQ::Settings.configure(uri)
|
468
468
|
end
|
469
469
|
|
470
470
|
# Checks if a queue with given name exists.
|
@@ -742,7 +742,7 @@ module Bunny
|
|
742
742
|
rescue HostListDepleted
|
743
743
|
reset_address_index
|
744
744
|
retry
|
745
|
-
rescue TCPConnectionFailedForAllHosts, TCPConnectionFailed, AMQ::Protocol::EmptyResponseError, SystemCallError => e
|
745
|
+
rescue TCPConnectionFailedForAllHosts, TCPConnectionFailed, AMQ::Protocol::EmptyResponseError, SystemCallError, Timeout::Error => e
|
746
746
|
@logger.warn "TCP connection failed, reconnecting in #{@network_recovery_interval} seconds"
|
747
747
|
if should_retry_recovery?
|
748
748
|
decrement_recovery_attemp_counter!
|
data/lib/bunny/transport.rb
CHANGED
@@ -26,7 +26,7 @@ module Bunny
|
|
26
26
|
DEFAULT_WRITE_TIMEOUT = 30.0
|
27
27
|
|
28
28
|
attr_reader :session, :host, :port, :socket, :connect_timeout, :read_timeout, :write_timeout, :disconnect_timeout
|
29
|
-
attr_reader :tls_context
|
29
|
+
attr_reader :tls_context, :verify_peer, :tls_ca_certificates, :tls_certificate_path, :tls_key_path
|
30
30
|
|
31
31
|
attr_writer :read_timeout
|
32
32
|
|
@@ -298,17 +298,21 @@ module Bunny
|
|
298
298
|
protected
|
299
299
|
|
300
300
|
def tls_enabled?(opts)
|
301
|
-
return opts[:tls] unless opts[:tls].nil?
|
302
|
-
return opts[:ssl] unless opts[:ssl].nil?
|
301
|
+
return !!opts[:tls] unless opts[:tls].nil?
|
302
|
+
return !!opts[:ssl] unless opts[:ssl].nil?
|
303
303
|
(opts[:port] == AMQ::Protocol::TLS_PORT) || false
|
304
304
|
end
|
305
305
|
|
306
|
+
def tls_ca_certificates_paths_from(opts)
|
307
|
+
Array(opts[:cacertfile] || opts[:tls_ca_certificates] || opts[:ssl_ca_certificates])
|
308
|
+
end
|
309
|
+
|
306
310
|
def tls_certificate_path_from(opts)
|
307
|
-
opts[:tls_cert] || opts[:ssl_cert] || opts[:tls_cert_path] || opts[:ssl_cert_path] || opts[:tls_certificate_path] || opts[:ssl_certificate_path]
|
311
|
+
opts[:certfile] || opts[:tls_cert] || opts[:ssl_cert] || opts[:tls_cert_path] || opts[:ssl_cert_path] || opts[:tls_certificate_path] || opts[:ssl_certificate_path]
|
308
312
|
end
|
309
313
|
|
310
314
|
def tls_key_path_from(opts)
|
311
|
-
opts[:tls_key] || opts[:ssl_key] || opts[:tls_key_path] || opts[:ssl_key_path]
|
315
|
+
opts[:keyfile] || opts[:tls_key] || opts[:ssl_key] || opts[:tls_key_path] || opts[:ssl_key_path]
|
312
316
|
end
|
313
317
|
|
314
318
|
def tls_certificate_from(opts)
|
@@ -337,7 +341,7 @@ module Bunny
|
|
337
341
|
end
|
338
342
|
|
339
343
|
def prepare_tls_context(opts)
|
340
|
-
if (opts[:verify_ssl] || opts[:verify_peer]).nil?
|
344
|
+
if (opts[:verify_ssl] || opts[:verify_peer] || opts[:verify]).nil?
|
341
345
|
opts[:verify_peer] = true
|
342
346
|
end
|
343
347
|
|
@@ -349,12 +353,23 @@ module Bunny
|
|
349
353
|
@tls_key = tls_key_from(opts)
|
350
354
|
@tls_certificate_store = opts[:tls_certificate_store]
|
351
355
|
|
352
|
-
@tls_ca_certificates = opts
|
353
|
-
@verify_peer = (opts[:verify_ssl] || opts[:verify_peer])
|
356
|
+
@tls_ca_certificates = tls_ca_certificates_paths_from(opts) || default_tls_certificates
|
357
|
+
@verify_peer = as_boolean(opts[:verify_ssl] || opts[:verify_peer] || opts[:verify])
|
354
358
|
|
355
359
|
@tls_context = initialize_tls_context(OpenSSL::SSL::SSLContext.new, opts)
|
356
360
|
end
|
357
361
|
|
362
|
+
def as_boolean(val)
|
363
|
+
case val
|
364
|
+
when true then true
|
365
|
+
when false then false
|
366
|
+
when "true" then true
|
367
|
+
when "false" then false
|
368
|
+
else
|
369
|
+
!!val
|
370
|
+
end
|
371
|
+
end
|
372
|
+
|
358
373
|
def wrap_in_tls_socket(socket)
|
359
374
|
raise ArgumentError, "cannot wrap nil into TLS socket, @tls_context is nil. This is a Bunny bug." unless socket
|
360
375
|
raise "cannot wrap a socket into TLS socket, @tls_context is nil. This is a Bunny bug." unless @tls_context
|
data/lib/bunny/version.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
+
def local_hostname
|
4
|
+
ENV.fetch("BUNNY_RABBITMQ_HOSTNAME", "127.0.0.1")
|
5
|
+
end
|
6
|
+
|
3
7
|
describe Bunny::Session do
|
4
8
|
let(:port) { AMQ::Protocol::DEFAULT_PORT }
|
5
9
|
let(:username) { "guest" }
|
@@ -319,9 +323,9 @@ describe Bunny::Session do
|
|
319
323
|
password: "bunny_password",
|
320
324
|
vhost: "bunny_testbed",
|
321
325
|
ssl: true,
|
322
|
-
ssl_cert: "spec/tls/
|
326
|
+
ssl_cert: "spec/tls/client_certificate.pem",
|
323
327
|
ssl_key: "spec/tls/client_key.pem",
|
324
|
-
ssl_ca_certificates: ["./spec/tls/
|
328
|
+
ssl_ca_certificates: ["./spec/tls/ca_certificate.pem"])
|
325
329
|
end
|
326
330
|
|
327
331
|
it "uses TLS port" do
|
@@ -2,7 +2,7 @@
|
|
2
2
|
require "spec_helper"
|
3
3
|
|
4
4
|
unless ENV["CI"]
|
5
|
-
CERTIFICATE_DIR=ENV.fetch("BUNNY_CERTIFICATE_DIR", "./spec/tls")
|
5
|
+
CERTIFICATE_DIR = ENV.fetch("BUNNY_CERTIFICATE_DIR", "./spec/tls")
|
6
6
|
puts "Will use certificates from #{CERTIFICATE_DIR}"
|
7
7
|
|
8
8
|
shared_examples_for "successful TLS connection" do
|
@@ -40,14 +40,16 @@ unless ENV["CI"]
|
|
40
40
|
|
41
41
|
context "initialized with :tls => true" do
|
42
42
|
let(:subject) do
|
43
|
-
Bunny.new(
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
47
|
-
:
|
48
|
-
:
|
49
|
-
:
|
50
|
-
:
|
43
|
+
Bunny.new(
|
44
|
+
hostname: local_hostname(),
|
45
|
+
user: "bunny_gem",
|
46
|
+
password: "bunny_password",
|
47
|
+
vhost: "bunny_testbed",
|
48
|
+
tls: true,
|
49
|
+
verify_peer: verify_peer,
|
50
|
+
tls_cert: "#{CERTIFICATE_DIR}/client_certificate.pem",
|
51
|
+
tls_key: "#{CERTIFICATE_DIR}/client_key.pem",
|
52
|
+
tls_ca_certificates: ["#{CERTIFICATE_DIR}/ca_certificate.pem"])
|
51
53
|
end
|
52
54
|
|
53
55
|
context "peer verification is off" do
|
@@ -79,7 +81,9 @@ unless ENV["CI"]
|
|
79
81
|
|
80
82
|
describe "TLS connection to RabbitMQ with client certificates" do
|
81
83
|
let(:subject) do
|
82
|
-
c = Bunny.new(
|
84
|
+
c = Bunny.new(
|
85
|
+
hostname: local_hostname(),
|
86
|
+
username: "bunny_gem",
|
83
87
|
password: "bunny_password",
|
84
88
|
vhost: "bunny_testbed",
|
85
89
|
tls: true,
|
@@ -101,7 +105,9 @@ unless ENV["CI"]
|
|
101
105
|
|
102
106
|
describe "TLS connection to RabbitMQ without client certificates" do
|
103
107
|
let(:subject) do
|
104
|
-
c = Bunny.new(
|
108
|
+
c = Bunny.new(
|
109
|
+
hostname: local_hostname(),
|
110
|
+
username: "bunny_gem",
|
105
111
|
password: "bunny_password",
|
106
112
|
vhost: "bunny_testbed",
|
107
113
|
tls: true,
|
@@ -121,7 +127,7 @@ unless ENV["CI"]
|
|
121
127
|
|
122
128
|
describe "TLS connection to RabbitMQ with a connection string" do
|
123
129
|
let(:subject) do
|
124
|
-
c = Bunny.new("amqps://bunny_gem:bunny_password@#{local_hostname}/bunny_testbed",
|
130
|
+
c = Bunny.new("amqps://bunny_gem:bunny_password@#{local_hostname()}/bunny_testbed",
|
125
131
|
tls_cert: "#{CERTIFICATE_DIR}/client_certificate.pem",
|
126
132
|
tls_key: "#{CERTIFICATE_DIR}/client_key.pem",
|
127
133
|
tls_ca_certificates: ["#{CERTIFICATE_DIR}/ca_certificate.pem"],
|
@@ -135,12 +141,28 @@ unless ENV["CI"]
|
|
135
141
|
end
|
136
142
|
|
137
143
|
include_examples "successful TLS connection"
|
144
|
+
|
145
|
+
context "when URI contains query parameters" do
|
146
|
+
subject(:session) do
|
147
|
+
Bunny.new("amqps://bunny_gem:bunny_password@#{local_hostname()}/bunny_testbed?heartbeat=10&connection_timeout=100&channel_max=1000&verify=false&cacertfile=#{CERTIFICATE_DIR}/ca_certificate.pem&certfile=#{CERTIFICATE_DIR}/client_certificate.pem&keyfile=#{CERTIFICATE_DIR}/client_key.pem")
|
148
|
+
end
|
149
|
+
|
150
|
+
it "parses extra connection parameters" do
|
151
|
+
session.start
|
152
|
+
|
153
|
+
expect(session.uses_tls?).to eq(true)
|
154
|
+
expect(session.transport.verify_peer).to eq(false)
|
155
|
+
expect(session.transport.tls_ca_certificates).to eq(["#{CERTIFICATE_DIR}/ca_certificate.pem"])
|
156
|
+
expect(session.transport.tls_certificate_path).to eq("#{CERTIFICATE_DIR}/client_certificate.pem")
|
157
|
+
expect(session.transport.tls_key_path).to eq("#{CERTIFICATE_DIR}/client_key.pem")
|
158
|
+
end
|
159
|
+
end
|
138
160
|
end
|
139
161
|
|
140
162
|
|
141
163
|
describe "TLS connection to RabbitMQ with a connection string and w/o client certificate and key" do
|
142
164
|
let(:subject) do
|
143
|
-
c = Bunny.new("amqps://bunny_gem:bunny_password@#{local_hostname}/bunny_testbed",
|
165
|
+
c = Bunny.new("amqps://bunny_gem:bunny_password@#{local_hostname()}/bunny_testbed",
|
144
166
|
tls_ca_certificates: ["#{CERTIFICATE_DIR}/ca_certificate.pem"],
|
145
167
|
verify_peer: verify_peer)
|
146
168
|
c.start
|
@@ -177,7 +199,9 @@ unless ENV["CI"]
|
|
177
199
|
|
178
200
|
describe "TLS connection to RabbitMQ with client certificates provided inline" do
|
179
201
|
let(:subject) do
|
180
|
-
c = Bunny.new(
|
202
|
+
c = Bunny.new(
|
203
|
+
hostname: local_hostname(),
|
204
|
+
username: "bunny_gem",
|
181
205
|
password: "bunny_password",
|
182
206
|
vhost: "bunny_testbed",
|
183
207
|
tls: true,
|
@@ -198,7 +222,9 @@ unless ENV["CI"]
|
|
198
222
|
|
199
223
|
describe "TLS connection to RabbitMQ with tls_version TLSv1.1 specified" do
|
200
224
|
let(:subject) do
|
201
|
-
c = Bunny.new(
|
225
|
+
c = Bunny.new(
|
226
|
+
hostname: local_hostname(),
|
227
|
+
username: "bunny_gem",
|
202
228
|
password: "bunny_password",
|
203
229
|
vhost: "bunny_testbed",
|
204
230
|
tls: true,
|
data/spec/spec_helper.rb
CHANGED
@@ -3,15 +3,10 @@
|
|
3
3
|
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
4
4
|
|
5
5
|
require 'bundler'
|
6
|
-
Bundler.
|
6
|
+
Bundler.require(:default, :test)
|
7
7
|
|
8
|
-
|
9
|
-
require "effin_utf8"
|
10
8
|
require "bunny"
|
11
|
-
require "rabbitmq/http/client"
|
12
|
-
|
13
9
|
|
14
|
-
require "amq/protocol/version"
|
15
10
|
puts "Using Ruby #{RUBY_VERSION}, amq-protocol #{AMQ::Protocol::VERSION}"
|
16
11
|
|
17
12
|
module RabbitMQ
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bunny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Duncan
|
@@ -12,20 +12,20 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2018-01-
|
15
|
+
date: 2018-01-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: amq-protocol
|
19
19
|
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- - "
|
21
|
+
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 2.2.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- - "
|
28
|
+
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 2.2.0
|
31
31
|
description: Easy to use, feature complete Ruby client for RabbitMQ 3.3 and later
|
@@ -224,7 +224,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
224
224
|
requirements:
|
225
225
|
- - ">="
|
226
226
|
- !ruby/object:Gem::Version
|
227
|
-
version: '2.
|
227
|
+
version: '2.2'
|
228
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
229
|
requirements:
|
230
230
|
- - ">="
|