amqp 0.8.0.rc3 → 0.8.0.rc4
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/CHANGELOG +1 -1
- data/amqp.gemspec +1 -1
- data/docs/ConnectingToTheBroker.textile +96 -11
- data/docs/{TLS.textile → ConnectionEncryptionWithTLS.textile} +0 -0
- data/docs/DocumentationGuidesIndex.textile +1 -1
- data/docs/ErrorHandling.textile +154 -3
- data/docs/Exchanges.textile +66 -1
- data/docs/Queues.textile +527 -3
- data/examples/error_handling/handling_authentication_failure_with_a_callback.rb +1 -1
- data/examples/error_handling/handling_authentication_failure_with_a_rescue_block.rb +33 -0
- data/examples/guides/queues/05_binding_a_queue_using_exchange_instance.rb +22 -0
- data/examples/guides/queues/06_biding_a_queue_using_exchange_name_string.rb +22 -0
- data/examples/guides/queues/07_subscribing_to_receive_messages.rb +25 -0
- data/examples/guides/queues/08_poll_for_messages.rb +28 -0
- data/examples/guides/queues/09_unsubscribing_a_consumer.rb +28 -0
- data/examples/guides/queues/10_unbinding_from_exchange.rb +32 -0
- data/examples/guides/queues/11_purge_a_queue.rb +28 -0
- data/examples/guides/queues/12_deleting_a_queue.rb +27 -0
- data/lib/amqp/exceptions.rb +14 -5
- data/lib/amqp/exchange.rb +1 -1
- data/lib/amqp/queue.rb +1 -27
- data/lib/amqp/session.rb +11 -0
- data/lib/amqp/version.rb +1 -1
- metadata +214 -180
@@ -9,7 +9,7 @@ $:.unshift(File.expand_path("../../../lib", __FILE__))
|
|
9
9
|
require 'amqp'
|
10
10
|
|
11
11
|
|
12
|
-
puts "=>
|
12
|
+
puts "=> Authentication failure handling with a callback"
|
13
13
|
puts
|
14
14
|
|
15
15
|
handler = Proc.new { |settings| puts "Failed to connect, as expected"; EM.stop }
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "bundler"
|
5
|
+
Bundler.setup
|
6
|
+
|
7
|
+
$:.unshift(File.expand_path("../../../lib", __FILE__))
|
8
|
+
|
9
|
+
require 'amqp'
|
10
|
+
|
11
|
+
|
12
|
+
puts "=> Authentication failure handling with a rescue block"
|
13
|
+
puts
|
14
|
+
|
15
|
+
handler = Proc.new { |settings| puts "Failed to connect, as expected"; EM.stop }
|
16
|
+
connection_settings = {
|
17
|
+
:port => 5672,
|
18
|
+
:vhost => "/amq_client_testbed",
|
19
|
+
:user => "amq_client_gem",
|
20
|
+
:password => "amq_client_gem_password_that_is_incorrect #{Time.now.to_i}",
|
21
|
+
:timeout => 0.3,
|
22
|
+
:on_tcp_connection_failure => handler
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
begin
|
27
|
+
AMQP.start(connection_settings) do |connection, open_ok|
|
28
|
+
raise "This should not be reachable"
|
29
|
+
end
|
30
|
+
rescue AMQP::PossibleAuthenticationFailureError => afe
|
31
|
+
puts "Authentication failed, as expected, caught #{afe.inspect}"
|
32
|
+
EventMachine.stop if EventMachine.reactor_running?
|
33
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
# Binding a queue to an exchange
|
8
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
9
|
+
AMQP::Channel.new do |channel, open_ok|
|
10
|
+
exchange = channel.fanout("amq.fanout")
|
11
|
+
|
12
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
13
|
+
queue.bind(exchange) do |bind_ok|
|
14
|
+
puts "Just bound #{queue.name} to #{exchange.name}"
|
15
|
+
end
|
16
|
+
|
17
|
+
connection.close {
|
18
|
+
EM.stop { exit }
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
# Binding a queue to an exchange
|
8
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
9
|
+
AMQP::Channel.new do |channel, open_ok|
|
10
|
+
exchange_name = "amq.fanout"
|
11
|
+
|
12
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
13
|
+
queue.bind(exchange_name) do |bind_ok|
|
14
|
+
puts "Just bound #{queue.name} to #{exchange_name}"
|
15
|
+
end
|
16
|
+
|
17
|
+
connection.close {
|
18
|
+
EM.stop { exit }
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
8
|
+
AMQP::Channel.new do |channel, open_ok|
|
9
|
+
exchange = channel.fanout("amq.fanout")
|
10
|
+
|
11
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
12
|
+
queue.bind(exchange).subscribe do |headers, payload|
|
13
|
+
puts "Received a message: #{payload.inspect}. Shutting down..."
|
14
|
+
|
15
|
+
connection.close {
|
16
|
+
EM.stop { exit }
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
EventMachine.add_timer(0.2) do
|
21
|
+
exchange.publish("Ohai!")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
8
|
+
AMQP::Channel.new do |channel, open_ok|
|
9
|
+
exchange = channel.fanout("amq.fanout")
|
10
|
+
|
11
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
12
|
+
queue.bind(exchange) do |_|
|
13
|
+
puts "Bound. Publishing a message..."
|
14
|
+
exchange.publish("Ohai!")
|
15
|
+
end
|
16
|
+
|
17
|
+
EventMachine.add_timer(0.5) do
|
18
|
+
queue.pop do |response|
|
19
|
+
puts "Fetched a message: #{response.inspect}. Shutting down..."
|
20
|
+
|
21
|
+
connection.close {
|
22
|
+
EM.stop { exit }
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
8
|
+
AMQP::Channel.new do |channel, open_ok|
|
9
|
+
exchange = channel.fanout("amq.fanout")
|
10
|
+
|
11
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
12
|
+
queue.bind(exchange).subscribe do |headers, payload|
|
13
|
+
puts "Received a new message"
|
14
|
+
end
|
15
|
+
|
16
|
+
EventMachine.add_timer(0.3) do
|
17
|
+
puts "Timer tick"
|
18
|
+
queue.unsubscribe do |_|
|
19
|
+
puts "Unsubscribed. Shutting down..."
|
20
|
+
|
21
|
+
connection.close {
|
22
|
+
EM.stop { exit }
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end # EventMachine.add_timer
|
26
|
+
end # channel.queue
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
8
|
+
puts "Connected"
|
9
|
+
AMQP::Channel.new(connection) do |channel, open_ok|
|
10
|
+
puts "Opened a channel"
|
11
|
+
channel.on_error do |arg|
|
12
|
+
raise "Channel-level exception: #{arg.inspect}"
|
13
|
+
end
|
14
|
+
exchange = channel.fanout("amq.fanout")
|
15
|
+
|
16
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
17
|
+
queue.bind(exchange) do |_|
|
18
|
+
puts "Bound"
|
19
|
+
end
|
20
|
+
|
21
|
+
EventMachine.add_timer(0.5) do
|
22
|
+
queue.unbind(exchange) do |_|
|
23
|
+
puts "Unbound. Shutting down..."
|
24
|
+
|
25
|
+
connection.close {
|
26
|
+
EM.stop { exit }
|
27
|
+
}
|
28
|
+
end
|
29
|
+
end # EventMachine.add_timer
|
30
|
+
end # channel.queue
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
8
|
+
puts "Connected"
|
9
|
+
AMQP::Channel.new(connection) do |channel, open_ok|
|
10
|
+
puts "Opened a channel"
|
11
|
+
channel.on_error do |arg|
|
12
|
+
raise "Channel-level exception: #{arg.inspect}"
|
13
|
+
end
|
14
|
+
exchange = channel.fanout("amq.fanout")
|
15
|
+
|
16
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
17
|
+
queue.purge do |_|
|
18
|
+
puts "Purged #{queue.name}"
|
19
|
+
end
|
20
|
+
|
21
|
+
EventMachine.add_timer(0.5) do
|
22
|
+
connection.close {
|
23
|
+
EM.stop { exit }
|
24
|
+
}
|
25
|
+
end # EventMachine.add_timer
|
26
|
+
end # channel.queue
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "amqp"
|
6
|
+
|
7
|
+
AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
8
|
+
puts "Connected"
|
9
|
+
AMQP::Channel.new(connection) do |channel, open_ok|
|
10
|
+
puts "Opened a channel"
|
11
|
+
channel.on_error do |arg|
|
12
|
+
raise "Channel-level exception: #{arg.inspect}"
|
13
|
+
end
|
14
|
+
exchange = channel.fanout("amq.fanout")
|
15
|
+
|
16
|
+
channel.queue("", :auto_delete => true, :exclusive => true) do |queue, declare_ok|
|
17
|
+
EventMachine.add_timer(0.5) do
|
18
|
+
queue.delete do
|
19
|
+
puts "Deleted #{queue.name}"
|
20
|
+
connection.close {
|
21
|
+
EM.stop { exit }
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end # EventMachine.add_timer
|
25
|
+
end # channel.queue
|
26
|
+
end
|
27
|
+
end
|
data/lib/amqp/exceptions.rb
CHANGED
@@ -23,11 +23,6 @@ module AMQP
|
|
23
23
|
# Raised when initial TCP connection to the broker fails.
|
24
24
|
# @api public
|
25
25
|
class TCPConnectionFailed < Error
|
26
|
-
|
27
|
-
#
|
28
|
-
# API
|
29
|
-
#
|
30
|
-
|
31
26
|
# @return [Hash] connection settings that were used
|
32
27
|
attr_reader :settings
|
33
28
|
|
@@ -39,6 +34,20 @@ module AMQP
|
|
39
34
|
end # TCPConnectionFailed
|
40
35
|
end
|
41
36
|
|
37
|
+
# Raised when authentication fails.
|
38
|
+
# @api public
|
39
|
+
class PossibleAuthenticationFailureError < Error
|
40
|
+
# @return [Hash] connection settings that were used
|
41
|
+
attr_reader :settings
|
42
|
+
|
43
|
+
def initialize(settings)
|
44
|
+
@settings = settings
|
45
|
+
|
46
|
+
super("AMQP broker closed TCP connection before authentication succeeded: this usually means authentication failure due to misconfiguration. Settings are #{settings.inspect}")
|
47
|
+
end # initialize(settings)
|
48
|
+
end # PossibleAuthenticationFailureError
|
49
|
+
|
50
|
+
|
42
51
|
|
43
52
|
# Raised when queue (or exchange) declaration fails because another queue with the same
|
44
53
|
# name but different attributes already exists in the channel object cache.
|
data/lib/amqp/exchange.rb
CHANGED
@@ -353,7 +353,7 @@ module AMQP
|
|
353
353
|
|
354
354
|
unless @opts[:no_declare]
|
355
355
|
@channel.once_open do
|
356
|
-
self.declare(passive = @opts[:passive], durable = @opts[:durable],
|
356
|
+
self.declare(passive = @opts[:passive], durable = @opts[:durable], auto_delete = @opts[:auto_delete], nowait = @opts[:nowait], @opts[:arguments], &shim)
|
357
357
|
end
|
358
358
|
end
|
359
359
|
else
|
data/lib/amqp/queue.rb
CHANGED
@@ -5,7 +5,7 @@ require "amq/client/queue"
|
|
5
5
|
module AMQP
|
6
6
|
# h2. What are AMQP queues?
|
7
7
|
#
|
8
|
-
# Queues store and forward messages to consumers. They similar to mailboxes in SMTP.
|
8
|
+
# Queues store and forward messages to consumers. They are similar to mailboxes in SMTP.
|
9
9
|
# Messages flow from producing applications to {Exchange exchanges} that route them
|
10
10
|
# to queues and finally queues deliver them to consumer applications (or consumer
|
11
11
|
# applications fetch messages as needed).
|
@@ -42,36 +42,10 @@ module AMQP
|
|
42
42
|
#
|
43
43
|
# Here is an example:
|
44
44
|
#
|
45
|
-
# @example Declaring a server-named queue using AMQP::Queue constructor
|
46
|
-
# AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
47
|
-
# AMQP::Channel.new do |channel, open_ok|
|
48
|
-
# AMQP::Queue.new(channel, "", :auto_delete => true) do |queue, declare_ok|
|
49
|
-
# puts "#{queue.name} is ready to go. AMQP method: #{declare_ok.inspect}"
|
50
|
-
#
|
51
|
-
# connection.close {
|
52
|
-
# EM.stop { exit }
|
53
|
-
# }
|
54
|
-
# end
|
55
|
-
# end
|
56
|
-
# end
|
57
|
-
#
|
58
45
|
# <script src="https://gist.github.com/939596.js?file=gistfile1.rb"></script>
|
59
46
|
#
|
60
47
|
# If you want to declare a queue with a particular name, for example, "images.resize", pass it to Queue class constructor:
|
61
48
|
#
|
62
|
-
# @example Declaring a server-named queue using AMQP::Queue constructor
|
63
|
-
# AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672/") do |connection, open_ok|
|
64
|
-
# AMQP::Channel.new do |channel, open_ok|
|
65
|
-
# AMQP::Queue.new(channel, "images.resize", :auto_delete => true) do |queue, declare_ok|
|
66
|
-
# puts "#{queue.name} is ready to go."
|
67
|
-
#
|
68
|
-
# connection.close {
|
69
|
-
# EM.stop { exit }
|
70
|
-
# }
|
71
|
-
# end
|
72
|
-
# end
|
73
|
-
# end
|
74
|
-
#
|
75
49
|
# <script src="https://gist.github.com/939600.js?file=gistfile1.rb"></script>
|
76
50
|
#
|
77
51
|
# Queue names starting with 'amq.' are reserved for internal use by the broker. Attempts to declare queue with a name that violates this
|
data/lib/amqp/session.rb
CHANGED
@@ -136,5 +136,16 @@ module AMQP
|
|
136
136
|
def self.tcp_connection_failure_exception_class
|
137
137
|
@tcp_connection_failure_exception_class ||= AMQP::TCPConnectionFailed
|
138
138
|
end # self.tcp_connection_failure_exception_class
|
139
|
+
|
140
|
+
|
141
|
+
# Overrides authentication failure exception to one that inherits from AMQP::Error
|
142
|
+
# and thus is backwards compatible.
|
143
|
+
#
|
144
|
+
# @private
|
145
|
+
# @api plugin
|
146
|
+
# @return [Class] AMQP::PossibleAuthenticationFailureError
|
147
|
+
def self.authentication_failure_exception_class
|
148
|
+
@authentication_failure_exception_class ||= AMQP::PossibleAuthenticationFailureError
|
149
|
+
end # self.authentication_failure_exception_class
|
139
150
|
end # Session
|
140
151
|
end # AMQP
|
data/lib/amqp/version.rb
CHANGED
metadata
CHANGED
@@ -1,218 +1,252 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amqp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 1276957477555352241
|
4
5
|
prerelease: 6
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 8
|
9
|
+
- 0
|
10
|
+
- rc
|
11
|
+
- 4
|
12
|
+
version: 0.8.0.rc4
|
6
13
|
platform: ruby
|
7
14
|
authors:
|
8
|
-
|
9
|
-
|
10
|
-
|
15
|
+
- Aman Gupta
|
16
|
+
- Jakub Stastny aka botanicus
|
17
|
+
- Michael S. Klishin
|
11
18
|
autorequire:
|
12
19
|
bindir: bin
|
13
20
|
cert_chain:
|
14
|
-
date: 2011-
|
21
|
+
date: 2011-05-02 00:00:00 +04:00
|
15
22
|
default_executable:
|
16
23
|
dependencies:
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: eventmachine
|
26
|
+
prerelease: false
|
27
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
hash: 3
|
33
|
+
segments:
|
34
|
+
- 0
|
35
|
+
version: "0"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: amq-client
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 1552698946208022719
|
47
|
+
segments:
|
48
|
+
- 0
|
49
|
+
- 7
|
50
|
+
- 0
|
51
|
+
- alpha
|
52
|
+
- 16
|
53
|
+
version: 0.7.0.alpha16
|
54
|
+
type: :runtime
|
55
|
+
version_requirements: *id002
|
39
56
|
description: Widely used, feature-rich asynchronous AMQP 0.9.1 client with batteries included
|
40
57
|
email:
|
41
|
-
|
42
|
-
|
58
|
+
- michael@novemberain.com
|
59
|
+
- stastny@101ideas.cz
|
43
60
|
executables: []
|
44
61
|
|
45
62
|
extensions: []
|
46
63
|
|
47
64
|
extra_rdoc_files:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
65
|
+
- README.textile
|
66
|
+
- docs/08Migration.textile
|
67
|
+
- docs/Bindings.textile
|
68
|
+
- docs/ConnectingToTheBroker.textile
|
69
|
+
- docs/ConnectionEncryptionWithTLS.textile
|
70
|
+
- docs/DocumentationGuidesIndex.textile
|
71
|
+
- docs/Durability.textile
|
72
|
+
- docs/ErrorHandling.textile
|
73
|
+
- docs/Exchanges.textile
|
74
|
+
- docs/GettingStarted.textile
|
75
|
+
- docs/Queues.textile
|
76
|
+
- docs/RabbitMQVersions.textile
|
77
|
+
- docs/Routing.textile
|
78
|
+
- docs/VendorSpecificExtensions.textile
|
62
79
|
files:
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
80
|
+
- .gitignore
|
81
|
+
- .rspec
|
82
|
+
- .travis.yml
|
83
|
+
- .yardopts
|
84
|
+
- CHANGELOG
|
85
|
+
- CONTRIBUTORS
|
86
|
+
- Gemfile
|
87
|
+
- README.textile
|
88
|
+
- Rakefile
|
89
|
+
- amqp.gemspec
|
90
|
+
- bin/cleanify.rb
|
91
|
+
- bin/irb
|
92
|
+
- bin/jenkins.sh
|
93
|
+
- bin/set_test_suite_realms_up.sh
|
94
|
+
- docs/08Migration.textile
|
95
|
+
- docs/Bindings.textile
|
96
|
+
- docs/ConnectingToTheBroker.textile
|
97
|
+
- docs/ConnectionEncryptionWithTLS.textile
|
98
|
+
- docs/DocumentationGuidesIndex.textile
|
99
|
+
- docs/Durability.textile
|
100
|
+
- docs/ErrorHandling.textile
|
101
|
+
- docs/Exchanges.textile
|
102
|
+
- docs/GettingStarted.textile
|
103
|
+
- docs/Queues.textile
|
104
|
+
- docs/RabbitMQVersions.textile
|
105
|
+
- docs/Routing.textile
|
106
|
+
- docs/VendorSpecificExtensions.textile
|
107
|
+
- examples/channels/open_channel_without_assignment.rb
|
108
|
+
- examples/channels/prefetch_as_constructor_argument.rb
|
109
|
+
- examples/channels/qos_aka_prefetch.rb
|
110
|
+
- examples/channels/qos_aka_prefetch_without_callback.rb
|
111
|
+
- examples/error_handling/channel_level_exception.rb
|
112
|
+
- examples/error_handling/channel_level_exception_with_multiple_channels_involved.rb
|
113
|
+
- examples/error_handling/connection_loss_handler.rb
|
114
|
+
- examples/error_handling/global_channel_level_exception_handler.rb
|
115
|
+
- examples/error_handling/handling_authentication_failure_with_a_callback.rb
|
116
|
+
- examples/error_handling/handling_authentication_failure_with_a_rescue_block.rb
|
117
|
+
- examples/error_handling/tcp_connection_failure_handling_with_a_rescue_block.rb
|
118
|
+
- examples/error_handling/tcp_connection_failure_with_a_callback.rb
|
119
|
+
- examples/exchanges/declare_an_exchange_without_assignment.rb
|
120
|
+
- examples/extensions/rabbitmq/per_queue_message_ttl.rb
|
121
|
+
- examples/extensions/rabbitmq/publisher_confirmations_with_transient_messages.rb
|
122
|
+
- examples/guides/getting_started/01_hello_world.rb
|
123
|
+
- examples/guides/getting_started/02_hello_world_dslified.rb
|
124
|
+
- examples/guides/getting_started/03_babblr.rb
|
125
|
+
- examples/guides/getting_started/04_weathr.rb
|
126
|
+
- examples/guides/queues/05_binding_a_queue_using_exchange_instance.rb
|
127
|
+
- examples/guides/queues/06_biding_a_queue_using_exchange_name_string.rb
|
128
|
+
- examples/guides/queues/07_subscribing_to_receive_messages.rb
|
129
|
+
- examples/guides/queues/08_poll_for_messages.rb
|
130
|
+
- examples/guides/queues/09_unsubscribing_a_consumer.rb
|
131
|
+
- examples/guides/queues/10_unbinding_from_exchange.rb
|
132
|
+
- examples/guides/queues/11_purge_a_queue.rb
|
133
|
+
- examples/guides/queues/12_deleting_a_queue.rb
|
134
|
+
- examples/hello_world.rb
|
135
|
+
- examples/hello_world_with_eventmachine_in_a_separate_thread.rb
|
136
|
+
- examples/legacy/ack.rb
|
137
|
+
- examples/legacy/callbacks.rb
|
138
|
+
- examples/legacy/clock.rb
|
139
|
+
- examples/legacy/hashtable.rb
|
140
|
+
- examples/legacy/logger.rb
|
141
|
+
- examples/legacy/multiclock.rb
|
142
|
+
- examples/legacy/pingpong.rb
|
143
|
+
- examples/legacy/primes-simple.rb
|
144
|
+
- examples/legacy/primes.rb
|
145
|
+
- examples/legacy/stocks.rb
|
146
|
+
- examples/queues/automatic_binding_for_default_direct_exchange.rb
|
147
|
+
- examples/queues/basic_get.rb
|
148
|
+
- examples/queues/declare_a_queue_without_assignment.rb
|
149
|
+
- examples/queues/declare_and_bind_a_server_named_queue.rb
|
150
|
+
- examples/queues/queue_status.rb
|
151
|
+
- examples/real-world/task-queue/README.textile
|
152
|
+
- examples/real-world/task-queue/consumer.rb
|
153
|
+
- examples/real-world/task-queue/producer.rb
|
154
|
+
- examples/routing/pubsub.rb
|
155
|
+
- examples/routing/weather_updates.rb
|
156
|
+
- examples/tls_certificates/client/cert.pem
|
157
|
+
- examples/tls_certificates/client/key.pem
|
158
|
+
- examples/tls_certificates/client/keycert.p12
|
159
|
+
- examples/tls_certificates/client/req.pem
|
160
|
+
- examples/tls_certificates/server/cert.pem
|
161
|
+
- examples/tls_certificates/server/key.pem
|
162
|
+
- examples/tls_certificates/server/keycert.p12
|
163
|
+
- examples/tls_certificates/server/req.pem
|
164
|
+
- examples/tls_certificates/testca/cacert.cer
|
165
|
+
- examples/tls_certificates/testca/cacert.pem
|
166
|
+
- examples/tls_certificates/testca/certs/01.pem
|
167
|
+
- examples/tls_certificates/testca/certs/02.pem
|
168
|
+
- examples/tls_certificates/testca/index.txt
|
169
|
+
- examples/tls_certificates/testca/index.txt.attr
|
170
|
+
- examples/tls_certificates/testca/index.txt.attr.old
|
171
|
+
- examples/tls_certificates/testca/index.txt.old
|
172
|
+
- examples/tls_certificates/testca/openssl.cnf
|
173
|
+
- examples/tls_certificates/testca/private/cakey.pem
|
174
|
+
- examples/tls_certificates/testca/serial
|
175
|
+
- examples/tls_certificates/testca/serial.old
|
176
|
+
- lib/amqp.rb
|
177
|
+
- lib/amqp/channel.rb
|
178
|
+
- lib/amqp/client.rb
|
179
|
+
- lib/amqp/connection.rb
|
180
|
+
- lib/amqp/deprecated/fork.rb
|
181
|
+
- lib/amqp/deprecated/logger.rb
|
182
|
+
- lib/amqp/deprecated/mq.rb
|
183
|
+
- lib/amqp/deprecated/rpc.rb
|
184
|
+
- lib/amqp/exceptions.rb
|
185
|
+
- lib/amqp/exchange.rb
|
186
|
+
- lib/amqp/ext/em.rb
|
187
|
+
- lib/amqp/ext/emfork.rb
|
188
|
+
- lib/amqp/extensions/rabbitmq.rb
|
189
|
+
- lib/amqp/header.rb
|
190
|
+
- lib/amqp/logger.rb
|
191
|
+
- lib/amqp/queue.rb
|
192
|
+
- lib/amqp/rpc.rb
|
193
|
+
- lib/amqp/session.rb
|
194
|
+
- lib/amqp/version.rb
|
195
|
+
- lib/mq.rb
|
196
|
+
- lib/mq/logger.rb
|
197
|
+
- lib/mq/rpc.rb
|
198
|
+
- spec/integration/authentication_spec.rb
|
199
|
+
- spec/integration/automatic_binding_for_default_direct_exchange_spec.rb
|
200
|
+
- spec/integration/basic_get_spec.rb
|
201
|
+
- spec/integration/channel_close_spec.rb
|
202
|
+
- spec/integration/channel_level_exception_with_multiple_channels_spec.rb
|
203
|
+
- spec/integration/declare_and_immediately_bind_a_server_named_queue_spec.rb
|
204
|
+
- spec/integration/exchange_declaration_spec.rb
|
205
|
+
- spec/integration/extensions/basic_return_spec.rb
|
206
|
+
- spec/integration/queue_declaration_spec.rb
|
207
|
+
- spec/integration/queue_exclusivity_spec.rb
|
208
|
+
- spec/integration/queue_redeclaration_with_incompatible_attributes_spec.rb
|
209
|
+
- spec/integration/reply_queue_communication_spec.rb
|
210
|
+
- spec/integration/store_and_forward_spec.rb
|
211
|
+
- spec/integration/topic_subscription_spec.rb
|
212
|
+
- spec/integration/workload_distribution_spec.rb
|
213
|
+
- spec/spec_helper.rb
|
214
|
+
- spec/unit/amqp/basic_spec.rb
|
215
|
+
- spec/unit/amqp/connection_spec.rb
|
216
|
+
- tasks.rb
|
191
217
|
has_rdoc: true
|
192
218
|
homepage: http://github.com/ruby-amqp/amqp
|
193
219
|
licenses: []
|
194
220
|
|
195
221
|
post_install_message:
|
196
222
|
rdoc_options:
|
197
|
-
|
223
|
+
- --include=examples --main README.textile
|
198
224
|
require_paths:
|
199
|
-
|
225
|
+
- lib
|
200
226
|
required_ruby_version: !ruby/object:Gem::Requirement
|
201
227
|
none: false
|
202
228
|
requirements:
|
203
|
-
|
204
|
-
|
205
|
-
|
229
|
+
- - ">="
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
hash: 3
|
232
|
+
segments:
|
233
|
+
- 0
|
234
|
+
version: "0"
|
206
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
236
|
none: false
|
208
237
|
requirements:
|
209
|
-
|
210
|
-
|
211
|
-
|
238
|
+
- - ">"
|
239
|
+
- !ruby/object:Gem::Version
|
240
|
+
hash: 25
|
241
|
+
segments:
|
242
|
+
- 1
|
243
|
+
- 3
|
244
|
+
- 1
|
245
|
+
version: 1.3.1
|
212
246
|
requirements: []
|
213
247
|
|
214
248
|
rubyforge_project: amqp
|
215
|
-
rubygems_version: 1.5.
|
249
|
+
rubygems_version: 1.5.2
|
216
250
|
signing_key:
|
217
251
|
specification_version: 3
|
218
252
|
summary: AMQP client implementation in Ruby/EventMachine.
|