amqp 0.9.5 → 0.9.6
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.
data/.travis.yml
CHANGED
@@ -2,10 +2,13 @@ language: ruby
|
|
2
2
|
bundler_args: --without development
|
3
3
|
before_script: ./bin/ci/before_build.sh
|
4
4
|
script: "bundle exec rake spec:ci"
|
5
|
+
env:
|
6
|
+
- CI=true
|
5
7
|
rvm:
|
6
8
|
- 1.8.7
|
7
|
-
- rbx-
|
8
|
-
- jruby-
|
9
|
+
- rbx-19mode
|
10
|
+
- jruby-19mode
|
11
|
+
- jruby-head
|
9
12
|
- 1.9.2
|
10
13
|
- 1.9.3
|
11
14
|
gemfile:
|
@@ -19,4 +22,24 @@ branches:
|
|
19
22
|
- master
|
20
23
|
- 0.9.x-stable
|
21
24
|
- 0.8.x-stable
|
22
|
-
- 0.7.x-stable
|
25
|
+
- 0.7.x-stable
|
26
|
+
matrix:
|
27
|
+
allow_failures:
|
28
|
+
- rvm: 1.8.7
|
29
|
+
gemfile: gemfiles/eventmachine-pre
|
30
|
+
- rvm: 1.9.3
|
31
|
+
gemfile: gemfiles/eventmachine-pre
|
32
|
+
- rvm: jruby-19mode
|
33
|
+
gemfile: gemfiles/eventmachine-pre
|
34
|
+
- rvm: jruby-head
|
35
|
+
gemfile: gemfiles/eventmachine-pre
|
36
|
+
- rvm: jruby-head
|
37
|
+
gemfile: Gemfile
|
38
|
+
- rvm: rbx-19mode
|
39
|
+
gemfile: gemfiles/eventmachine-pre
|
40
|
+
- rvm: rbx-19mode
|
41
|
+
gemfile: Gemfile
|
42
|
+
- rvm: 1.9.2
|
43
|
+
gemfile: gemfiles/eventmachine-pre
|
44
|
+
- rvm: 1.9.2
|
45
|
+
gemfile: Gemfile
|
data/lib/amqp/channel.rb
CHANGED
@@ -227,6 +227,8 @@ module AMQP
|
|
227
227
|
# Read more about EM::Deferrable#callback behavior in EventMachine documentation. MK.
|
228
228
|
@channel_is_open_deferrable = AMQ::Client::EventMachineClient::Deferrable.new
|
229
229
|
|
230
|
+
@parameter_checks = {:queue => [:durable, :exclusive, :auto_delete, :arguments], :exchange => [:type, :durable, :arguments]}
|
231
|
+
|
230
232
|
# only send channel.open when connection is actually open. Makes it possible to
|
231
233
|
# do c = AMQP.connect; AMQP::Channel.new(c) that is what some people do. MK.
|
232
234
|
@connection.on_connection do
|
@@ -379,7 +381,7 @@ module AMQP
|
|
379
381
|
if exchange = find_exchange(name)
|
380
382
|
extended_opts = Exchange.add_default_options(:direct, name, opts, block)
|
381
383
|
|
382
|
-
validate_parameters_match!(exchange, extended_opts)
|
384
|
+
validate_parameters_match!(exchange, extended_opts, :exchange)
|
383
385
|
|
384
386
|
block.call(exchange) if block
|
385
387
|
exchange
|
@@ -487,7 +489,7 @@ module AMQP
|
|
487
489
|
if exchange = find_exchange(name)
|
488
490
|
extended_opts = Exchange.add_default_options(:fanout, name, opts, block)
|
489
491
|
|
490
|
-
validate_parameters_match!(exchange, extended_opts)
|
492
|
+
validate_parameters_match!(exchange, extended_opts, :exchange)
|
491
493
|
|
492
494
|
block.call(exchange) if block
|
493
495
|
exchange
|
@@ -603,7 +605,7 @@ module AMQP
|
|
603
605
|
if exchange = find_exchange(name)
|
604
606
|
extended_opts = Exchange.add_default_options(:topic, name, opts, block)
|
605
607
|
|
606
|
-
validate_parameters_match!(exchange, extended_opts)
|
608
|
+
validate_parameters_match!(exchange, extended_opts, :exchange)
|
607
609
|
|
608
610
|
block.call(exchange) if block
|
609
611
|
exchange
|
@@ -709,7 +711,7 @@ module AMQP
|
|
709
711
|
if exchange = find_exchange(name)
|
710
712
|
extended_opts = Exchange.add_default_options(:headers, name, opts, block)
|
711
713
|
|
712
|
-
validate_parameters_match!(exchange, extended_opts)
|
714
|
+
validate_parameters_match!(exchange, extended_opts, :exchange)
|
713
715
|
|
714
716
|
block.call(exchange) if block
|
715
717
|
exchange
|
@@ -812,7 +814,7 @@ module AMQP
|
|
812
814
|
if name && !name.empty? && (queue = find_queue(name))
|
813
815
|
extended_opts = Queue.add_default_options(name, opts, block)
|
814
816
|
|
815
|
-
validate_parameters_match!(queue, extended_opts)
|
817
|
+
validate_parameters_match!(queue, extended_opts, :queue)
|
816
818
|
|
817
819
|
block.call(queue) if block
|
818
820
|
queue
|
@@ -1266,15 +1268,13 @@ module AMQP
|
|
1266
1268
|
end
|
1267
1269
|
|
1268
1270
|
|
1269
|
-
|
1270
1271
|
protected
|
1271
1272
|
|
1272
|
-
|
1273
|
-
def validate_parameters_match!(entity, parameters)
|
1274
|
-
parameters.
|
1275
|
-
unless entity.opts == parameters || parameters[:passive]
|
1273
|
+
@private
|
1274
|
+
def validate_parameters_match!(entity, parameters, type)
|
1275
|
+
unless entity.opts.values_at(*@parameter_checks[type]) == parameters.values_at(*@parameter_checks[type]) || parameters[:passive]
|
1276
1276
|
raise AMQP::IncompatibleOptionsError.new(entity.name, entity.opts, parameters)
|
1277
1277
|
end
|
1278
|
-
end # validate_parameters_match!(entity, parameters)
|
1278
|
+
end # validate_parameters_match!(entity, parameters, type)
|
1279
1279
|
end # Channel
|
1280
1280
|
end # AMQP
|
data/lib/amqp/session.rb
CHANGED
@@ -39,12 +39,12 @@ module AMQP
|
|
39
39
|
def initialize(*args, &block)
|
40
40
|
super(*args, &block)
|
41
41
|
|
42
|
-
@client_properties
|
42
|
+
@client_properties.merge!({
|
43
43
|
:platform => ::RUBY_DESCRIPTION,
|
44
44
|
:product => "AMQP gem",
|
45
45
|
:information => "http://github.com/ruby-amqp/amqp",
|
46
46
|
:version => AMQP::VERSION
|
47
|
-
}
|
47
|
+
})
|
48
48
|
end # initialize(*args, &block)
|
49
49
|
|
50
50
|
# @return [Boolean] true if this AMQP connection is currently open
|
data/lib/amqp/version.rb
CHANGED
@@ -232,6 +232,18 @@ describe AMQP::Channel do
|
|
232
232
|
done
|
233
233
|
end # it
|
234
234
|
end # context
|
235
|
+
|
236
|
+
context "when exchange is re-declared with irrelevent parameters different from original declaration" do
|
237
|
+
it "doesn't raise an exception" do
|
238
|
+
@channel.direct("previously.declared.durable.direct.exchange", :durable => true)
|
239
|
+
|
240
|
+
expect {
|
241
|
+
@channel.direct("previously.declared.durable.direct.exchange", :durable => true, :header => {:random => 'stuff' })
|
242
|
+
}.to_not raise_error(AMQP::IncompatibleOptionsError)
|
243
|
+
|
244
|
+
done
|
245
|
+
end # it
|
246
|
+
end # context
|
235
247
|
end # describe
|
236
248
|
|
237
249
|
|
@@ -20,14 +20,17 @@ describe AMQP do
|
|
20
20
|
context "when queue is redeclared with different attributes" do
|
21
21
|
let(:name) { "amqp-gem.nondurable.queue" }
|
22
22
|
let(:options) {
|
23
|
-
{ :durable => false, :passive => false }
|
23
|
+
{ :durable => false, :exclusive => true, :auto_delete => true, :arguments => {}, :passive => false }
|
24
24
|
}
|
25
25
|
let(:different_options) {
|
26
|
-
{ :durable => true, :passive => false}
|
26
|
+
{ :durable => true, :exclusive => true, :auto_delete => true, :arguments => {}, :passive => false}
|
27
|
+
}
|
28
|
+
let(:irrelevant_different_options) {
|
29
|
+
{ :durable => false, :exclusive => true, :auto_delete => true, :arguments => {}, :passive => false, :header => {:random => 'stuff' } }
|
27
30
|
}
|
28
31
|
|
29
32
|
|
30
|
-
it "should raise AMQP::IncompatibleOptionsError" do
|
33
|
+
it "should raise AMQP::IncompatibleOptionsError for incompatable options" do
|
31
34
|
channel = AMQP::Channel.new
|
32
35
|
channel.on_error do |ch, close|
|
33
36
|
@callback_fired = true
|
@@ -39,5 +42,18 @@ describe AMQP do
|
|
39
42
|
}.to raise_error(AMQP::IncompatibleOptionsError)
|
40
43
|
done
|
41
44
|
end
|
45
|
+
|
46
|
+
it "should not raise AMQP::IncompatibleOptionsError for irrelevant options" do
|
47
|
+
channel = AMQP::Channel.new
|
48
|
+
channel.on_error do |ch, close|
|
49
|
+
@callback_fired = true
|
50
|
+
end
|
51
|
+
|
52
|
+
channel.queue(name, options)
|
53
|
+
expect {
|
54
|
+
channel.queue(name, irrelevant_different_options)
|
55
|
+
}.to_not raise_error(AMQP::IncompatibleOptionsError)
|
56
|
+
done
|
57
|
+
end
|
42
58
|
end
|
43
59
|
end # describe AMQP
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amqp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 6
|
10
|
+
version: 0.9.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Aman Gupta
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2012-06-
|
20
|
+
date: 2012-06-23 00:00:00 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: eventmachine
|