amqp 1.0.0.pre2 → 1.0.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.
- data/.travis.yml +3 -0
- data/README.md +80 -72
- data/amqp.gemspec +5 -13
- data/docs/08Migration.textile +4 -0
- data/docs/AMQP091ModelExplained.textile +6 -1
- data/docs/Bindings.textile +4 -0
- data/docs/Clustering.textile +4 -0
- data/docs/ConnectingToTheBroker.textile +4 -0
- data/docs/ConnectionEncryptionWithTLS.textile +4 -0
- data/docs/DocumentationGuidesIndex.textile +4 -0
- data/docs/Durability.textile +4 -0
- data/docs/ErrorHandling.textile +4 -0
- data/docs/Exchanges.textile +4 -0
- data/docs/GettingStarted.textile +4 -0
- data/docs/PatternsAndUseCases.textile +4 -1
- data/docs/Queues.textile +4 -0
- data/docs/RabbitMQVersions.textile +4 -0
- data/docs/RunningTests.textile +4 -0
- data/docs/TestingWithEventedSpec.textile +4 -0
- data/docs/Troubleshooting.textile +4 -0
- data/docs/VendorSpecificExtensions.textile +4 -0
- data/examples/error_handling/automatic_recovery_of_channel_and_queues.rb +1 -1
- data/examples/error_handling/automatically_recovering_hello_world_consumer.rb +1 -1
- data/examples/error_handling/automatically_recovering_hello_world_consumer_that_uses_a_server_named_queue.rb +1 -1
- data/examples/error_handling/connection_level_exception.rb +1 -1
- data/examples/error_handling/connection_level_exception_with_objects.rb +1 -1
- data/examples/error_handling/connection_loss_handler.rb +4 -3
- data/examples/error_handling/hello_world_producer.rb +1 -1
- data/examples/error_handling/manual_connection_and_channel_recovery.rb +1 -1
- data/examples/extensions/rabbitmq/publisher_confirmations_with_transient_messages.rb +1 -1
- data/examples/extensions/rabbitmq/using_alternate_exchanges.rb +1 -1
- data/examples/guides/getting_started/01_hello_world.rb +1 -1
- data/examples/guides/getting_started/02_hello_world_dslified.rb +1 -1
- data/examples/hello_world.rb +1 -1
- data/examples/hello_world_with_an_empty_string.rb +1 -1
- data/examples/hello_world_with_eventmachine_in_a_separate_thread.rb +2 -2
- data/examples/hello_world_with_large_payload.rb +41 -41
- data/examples/patterns/request_reply/client.rb +1 -2
- data/examples/patterns/request_reply/server.rb +0 -1
- data/examples/publishing/returned_messages.rb +1 -1
- data/examples/queues/accessing_message_metadata.rb +1 -1
- data/examples/queues/cancel_default_consumer.rb +1 -1
- data/lib/amqp/channel.rb +34 -16
- data/lib/amqp/client.rb +2 -2
- data/lib/amqp/connection.rb +2 -1
- data/lib/amqp/consumer.rb +2 -2
- data/lib/amqp/exceptions.rb +11 -2
- data/lib/amqp/exchange.rb +5 -5
- data/lib/amqp/queue.rb +51 -26
- data/lib/amqp/session.rb +5 -5
- data/lib/amqp/version.rb +1 -1
- data/spec/integration/basic_get_spec.rb +82 -27
- data/spec/integration/basic_return_spec.rb +3 -3
- data/spec/integration/channel_level_exception_with_multiple_channels_spec.rb +0 -1
- data/spec/integration/exchange_declaration_spec.rb +71 -102
- data/spec/integration/extensions/rabbitmq/publisher_confirmations_spec.rb +1 -1
- data/spec/integration/fanout_exchange_routing_spec.rb +1 -1
- data/spec/integration/multiple_consumers_per_queue_spec.rb +3 -160
- data/spec/integration/queue_redeclaration_with_incompatible_attributes_spec.rb +25 -12
- data/spec/integration/regressions/concurrent_publishing_on_the_same_channel_spec.rb +1 -1
- data/spec/integration/remove_individual_binding_spec.rb +51 -0
- data/spec/integration/reply_queue_communication_spec.rb +1 -2
- data/spec/integration/store_and_forward_spec.rb +6 -9
- data/spec/integration/topic_subscription_spec.rb +5 -4
- data/spec/spec_helper.rb +8 -2
- data/spec/unit/amqp/connection_spec.rb +3 -1
- metadata +93 -109
- data/spec/integration/immediate_messages_spec.rb +0 -59
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,20 +1,19 @@
|
|
1
|
-
#
|
1
|
+
# Ruby amqp gem: the asynchronous Ruby RabbitMQ client
|
2
2
|
|
3
3
|
[Ruby amqp gem](http://rubyamqp.info) is a widely used, feature-rich, well-maintained asynchronous AMQP 0.9.1 client with batteries included.
|
4
4
|
This library works with Ruby 1.8.7 (*except for p249*, see the FAQ), Ruby 1.9.2, Ruby 1.9.3, [JRuby](http://jruby.org), [Rubinius](http://rubini.us) as well as [REE](http://www.rubyenterpriseedition.com), and is licensed under the [Ruby License](http://www.ruby-lang.org/en/LICENSE.txt)
|
5
5
|
|
6
|
-
0.8.0 and later versions of amqp gem implement [AMQP 0.9.1](http://
|
7
|
-
|
8
|
-
[](http://travis-ci.org/ruby-amqp/amqp)
|
6
|
+
0.8.0 and later versions of amqp gem implement [AMQP 0.9.1](http://www.rabbitmq.com/tutorials/amqp-concepts.html) (see also [AMQP 0.9.1 spec document](http://bit.ly/amqp091spec)) and support [RabbitMQ extensions to AMQP 0.9.1](http://www.rabbitmq.com/extensions.html).
|
9
7
|
|
10
8
|
|
11
|
-
## I know what AMQP is, how do I get started?
|
9
|
+
## I know what AMQP is, how do I get started?
|
12
10
|
|
13
|
-
See [Getting started with amqp gem](http://
|
11
|
+
See [Getting started with amqp gem](http://rubyamqp.info/articles/getting_started/) and other [amqp gem documentation guides](http://rubyamqp.info/).
|
12
|
+
We recommend that you read [AMQP 0.9.1 Model Explained](http://www.rabbitmq.com/tutorials/amqp-concepts.html), too.
|
14
13
|
|
15
14
|
|
16
15
|
|
17
|
-
## What is AMQP?
|
16
|
+
## What is AMQP?
|
18
17
|
|
19
18
|
AMQP is an [open standard for messaging middleware](http://www.amqp.org/confluence/display/AMQP/About+AMQP) that
|
20
19
|
emphasizes interoperability between different technologies (for example, Java, .NET, Ruby, Python, Node.js, Erlang, C and so on).
|
@@ -23,7 +22,7 @@ Key features of AMQP are very flexible yet simple routing and binary protocol ef
|
|
23
22
|
message acknowledgements, returning of messages to producer, redelivery of messages that couldn't be processed, load balancing between message consumers and so on.
|
24
23
|
|
25
24
|
|
26
|
-
## What is amqp gem good for?
|
25
|
+
## What is amqp gem good for?
|
27
26
|
|
28
27
|
One can use amqp gem to make Ruby applications interoperate with other
|
29
28
|
applications (both Ruby and not). Complexity and size may vary from
|
@@ -57,20 +56,20 @@ Specific examples:
|
|
57
56
|
|
58
57
|
|
59
58
|
|
60
|
-
## Getting started with Ruby amqp gem
|
59
|
+
## Getting started with Ruby amqp gem
|
61
60
|
|
62
|
-
### Install RabbitMQ
|
61
|
+
### Install RabbitMQ
|
63
62
|
|
64
63
|
Please refer to the [RabbitMQ installation guide](http://www.rabbitmq.com/install.html). Note that for Ubuntu and Debian we strongly advice that you
|
65
64
|
use [RabbitMQ apt repository](http://www.rabbitmq.com/debian.html#apt) that has recent versions of RabbitMQ. RabbitMQ packages Ubuntu and Debian ship
|
66
65
|
with are outdated even in recent (10.10) releases. Learn more in the [RabbitMQ versions guide](http://rubydoc.info/github/ruby-amqp/amqp/master/file/docs/RabbitMQVersions.textile).
|
67
66
|
|
68
67
|
|
69
|
-
### Install the gem
|
68
|
+
### Install the gem
|
70
69
|
|
71
70
|
On Microsoft Windows 7
|
72
71
|
|
73
|
-
gem install eventmachine
|
72
|
+
gem install eventmachine
|
74
73
|
gem install amqp
|
75
74
|
|
76
75
|
On other OSes or [JRuby](http://jruby.org):
|
@@ -78,48 +77,50 @@ On other OSes or [JRuby](http://jruby.org):
|
|
78
77
|
gem install amqp
|
79
78
|
|
80
79
|
|
81
|
-
### "Hello, World" example
|
80
|
+
### "Hello, World" example
|
82
81
|
|
83
|
-
|
84
|
-
|
82
|
+
``` ruby
|
83
|
+
#!/usr/bin/env ruby
|
84
|
+
# encoding: utf-8
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
86
|
+
require "rubygems"
|
87
|
+
# or
|
88
|
+
#
|
89
|
+
# require "bundler"
|
90
|
+
# Bundler.setup
|
91
|
+
#
|
92
|
+
# if you use Bundler
|
93
93
|
|
94
|
-
|
94
|
+
require 'amqp'
|
95
95
|
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
EventMachine.run do
|
97
|
+
connection = AMQP.connect(:host => '127.0.0.1')
|
98
|
+
puts "Connecting to AMQP broker. Running #{AMQP::VERSION} version of the gem..."
|
99
99
|
|
100
|
-
|
101
|
-
|
102
|
-
|
100
|
+
channel = AMQP::Channel.new(connection)
|
101
|
+
queue = channel.queue("amqpgem.examples.hello_world", :auto_delete => true)
|
102
|
+
exchange = channel.default_exchange
|
103
103
|
|
104
|
-
|
105
|
-
|
104
|
+
queue.subscribe do |payload|
|
105
|
+
puts "Received a message: #{payload}. Disconnecting..."
|
106
106
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
107
|
+
connection.close {
|
108
|
+
EventMachine.stop { exit }
|
109
|
+
}
|
110
|
+
end
|
111
111
|
|
112
|
-
|
113
|
-
|
112
|
+
exchange.publish "Hello, world!", :routing_key => queue.name
|
113
|
+
end
|
114
|
+
```
|
114
115
|
|
115
116
|
|
116
|
-
[Getting started guide](http://
|
117
|
-
and is written in a form of a tutorial. See [AMQP Model Explained](http://
|
117
|
+
[Getting started guide](http://rubyamqp.info/articles/getting_started/) explains this and two more examples in detail,
|
118
|
+
and is written in a form of a tutorial. See [AMQP Model Explained](http://www.rabbitmq.com/tutorials/amqp-concepts.html) if you want
|
118
119
|
to learn more about AMQP principles & concepts.
|
119
120
|
|
120
121
|
|
121
122
|
|
122
|
-
## Documentation: tutorials, guides & API reference
|
123
|
+
## Documentation: tutorials, guides & API reference
|
123
124
|
|
124
125
|
We believe that in order to be a library our users **really** love, we need to care about documentation as much as (or more)
|
125
126
|
code readability, API beauty and autotomated testing across 5 Ruby implementations on multiple operating systems. We do care
|
@@ -127,70 +128,76 @@ about our [documentation](http://rubyamqp.info): **if you don't find your answer
|
|
127
128
|
should [file to us](http://github.com/ruby-amqp/amqp/issues). Or just complain to [@rubyamqp](https://twitter.com/rubyamqp) on Twitter.
|
128
129
|
|
129
130
|
|
130
|
-
### Tutorials
|
131
|
+
### Tutorials
|
131
132
|
|
132
|
-
[Getting started guide](http://
|
133
|
+
[Getting started guide](http://rubyamqp.info/articles/getting_started/) is written as a tutorial that walks you through
|
133
134
|
3 examples:
|
134
135
|
|
135
136
|
* The "Hello, world" of messaging, 1-to-1 communication
|
136
137
|
* Blabbr, a Twitter-like example of broadcasting (1-to-many communication)
|
137
138
|
* Weathr, an example of sophisticated routing capabilities AMQP 0.9.1 has to offer (1-to-many or many-to-many communication)
|
138
139
|
|
139
|
-
all in under 20 minutes. [AMQP 0.9.1
|
140
|
+
all in under 20 minutes. [AMQP 0.9.1 Concepts](http://www.rabbitmq.com/tutorials/amqp-concepts.html) will introduce you to protocol concepts
|
140
141
|
in less than 5 minutes.
|
141
142
|
|
142
143
|
|
143
|
-
###
|
144
|
+
### Guides
|
145
|
+
|
146
|
+
[Documentation guides](http://rubyamqp.info) describe the library itself as well as AMQP concepts, usage scenarios, topics like working with exchanges and queues,
|
147
|
+
error handing & recovery, broker-specific extensions, TLS support, troubleshooting and so on. Most of the documentation is in these guides.
|
148
|
+
|
149
|
+
|
150
|
+
### Examples
|
144
151
|
|
145
152
|
You can find many examples (both real-world cases and simple demonstrations) under [examples directory](https://github.com/ruby-amqp/amqp/tree/master/examples) in the repository.
|
146
153
|
Note that those examples are written against version 0.8.0.rc1 and later. 0.6.x and 0.7.x may not support certain AMQP protocol or "DSL syntax" features.
|
147
154
|
|
148
|
-
There is also a work-in-progress [Messaging Patterns and Use Cases With AMQP](http://
|
155
|
+
There is also a work-in-progress [Messaging Patterns and Use Cases With AMQP](http://rubyamqp.info/articles/patterns_and_use_cases/) documentation guide.
|
149
156
|
|
150
157
|
|
151
|
-
###
|
158
|
+
### API reference
|
152
159
|
|
153
|
-
[
|
154
|
-
error handing & recovery, broker-specific extensions, TLS support, troubleshooting and so on. Most of the documentation is in these guides.
|
160
|
+
[API reference](http://bit.ly/mDm1JE) is up on [rubydoc.info](http://rubydoc.info) and is updated daily.
|
155
161
|
|
156
162
|
|
157
|
-
### API reference ###
|
158
163
|
|
159
|
-
|
164
|
+
## How to use AMQP gem with Ruby on Rails, Sinatra and other Web frameworks
|
160
165
|
|
166
|
+
We cover Web application integration for multiple Ruby Web servers in [Connecting to the broker guide](http://rubyamqp.info/articles/connecting_to_broker/).
|
161
167
|
|
162
168
|
|
163
|
-
## How to use AMQP gem with Ruby on Rails, Merb, Sinatra and other web frameworks ##
|
164
169
|
|
165
|
-
|
170
|
+
## Community
|
171
|
+
|
172
|
+
* Join also [RabbitMQ mailing list](https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss) (the AMQP community epicenter).
|
173
|
+
* Join [Ruby AMQP mailing list](http://groups.google.com/group/ruby-amqp)
|
174
|
+
* Follow [@rubyamqp](https://twitter.com/rubyamqp) on Twitter for Ruby AMQP ecosystem updates.
|
175
|
+
* Stop by #rabbitmq on irc.freenode.net. You can use [Web IRC client](http://webchat.freenode.net?channels=rabbitmq) if you don't have IRC client installed.
|
166
176
|
|
167
177
|
|
168
178
|
|
169
179
|
## Migration from amqp gem 0.6.x and 0.7.x
|
170
180
|
|
171
|
-
Upgrading from amqp gem 0.6.x and 0.7.x to to 0.8.0.RCs is straightforward, please see [amqp gem 0.8.0 migration guide](http://
|
181
|
+
Upgrading from amqp gem 0.6.x and 0.7.x to to 0.8.0.RCs is straightforward, please see [amqp gem 0.8.0 migration guide](http://rubyamqp.info/articles/08_migration/).
|
172
182
|
The same guide explains amqp gem versions history and why you would want to upgrade.
|
173
183
|
|
174
184
|
|
185
|
+
|
175
186
|
## Maintainer Information
|
176
187
|
|
177
188
|
amqp gem is maintained by [Michael Klishin](https://github.com/michaelklishin).
|
178
189
|
|
179
190
|
|
180
|
-
##
|
181
|
-
|
182
|
-
* Join [Ruby AMQP mailing list](http://groups.google.com/group/ruby-amqp)
|
183
|
-
* Follow [@rubyamqp](https://twitter.com/rubyamqp) on Twitter for Ruby AMQP ecosystem updates.
|
184
|
-
* Join also [RabbitMQ mailing list](https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss) (AMQP community epicenter).
|
185
|
-
* Stop by #rabbitmq on irc.freenode.net. You can use [Web IRC client](http://webchat.freenode.net?channels=rabbitmq) if you don't have IRC client installed.
|
191
|
+
## Continuous Integration
|
186
192
|
|
193
|
+
[](http://travis-ci.org/ruby-amqp/amqp)
|
187
194
|
|
188
195
|
|
189
196
|
## Links ##
|
190
197
|
|
191
198
|
* [API reference](http://rdoc.info/github/ruby-amqp/amqp/master/frames)
|
192
|
-
* [Documentation guides](http://
|
193
|
-
* [Code Examples](https://github.com/ruby-amqp/
|
199
|
+
* [Documentation guides](http://rubyamqp.info)
|
200
|
+
* [Code Examples](https://github.com/ruby-amqp/amqp/tree/master/examples)
|
194
201
|
* [Issue tracker](http://github.com/ruby-amqp/amqp/issues)
|
195
202
|
* [Continous integration status](http://travis-ci.org/#!/ruby-amqp/amqp)
|
196
203
|
|
@@ -206,8 +213,8 @@ AMQP gem is licensed under the [Ruby License](http://www.ruby-lang.org/en/LICENS
|
|
206
213
|
* The Original Code is [tmm1/amqp](http://github.com/tmm1/amqp).
|
207
214
|
* The Initial Developer of the Original Code is Aman Gupta.
|
208
215
|
* Copyright (c) 2008 - 2010 [Aman Gupta](http://github.com/tmm1).
|
209
|
-
* Contributions from [Jakub Stastny](http://github.com/botanicus) are Copyright (c) 2011 VMware, Inc.
|
210
|
-
* Copyright (c) 2010 —
|
216
|
+
* Contributions from [Jakub Stastny](http://github.com/botanicus) are Copyright (c) 2011-2012 VMware, Inc.
|
217
|
+
* Copyright (c) 2010 — 2012 [ruby-amqp](https://github.com/ruby-amqp) group members.
|
211
218
|
|
212
219
|
Currently maintained by [ruby-amqp](https://github.com/ruby-amqp) group members
|
213
220
|
Special thanks to Dmitriy Samovskiy, Ben Hood and Tony Garnock-Jones.
|
@@ -217,7 +224,7 @@ Special thanks to Dmitriy Samovskiy, Ben Hood and Tony Garnock-Jones.
|
|
217
224
|
|
218
225
|
### AMQP resources ###
|
219
226
|
|
220
|
-
* [AMQP 0.9.1 Model Explained](http://
|
227
|
+
* [AMQP 0.9.1 Model Explained](http://www.rabbitmq.com/tutorials/amqp-concepts.html)
|
221
228
|
* [RabbitMQ tutorials](http://www.rabbitmq.com/getstarted.html) that demonstrate interoperability
|
222
229
|
* [Wikipedia page on AMQP](http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol)
|
223
230
|
* [AMQP quick reference](http://www.rabbitmq.com/amqp-0-9-1-quickref.html)
|
@@ -226,7 +233,6 @@ Special thanks to Dmitriy Samovskiy, Ben Hood and Tony Garnock-Jones.
|
|
226
233
|
### Messaging and distributed systems resources ###
|
227
234
|
|
228
235
|
* [Enterprise Integration Patterns](http://www.eaipatterns.com), a book about messaging and use of messaging in systems integration.
|
229
|
-
|
230
236
|
* [A Critique of the Remote Procedure Call Paradigm](http://www.cs.vu.nl/~ast/publications/euteco-1988.pdf)
|
231
237
|
* [A Note on Distributed Computing](http://research.sun.com/techrep/1994/smli_tr-94-29.pdf)
|
232
238
|
* [Convenience Over Correctness](http://steve.vinoski.net/pdf/IEEE-Convenience_Over_Correctness.pdf)
|
@@ -236,26 +242,28 @@ Special thanks to Dmitriy Samovskiy, Ben Hood and Tony Garnock-Jones.
|
|
236
242
|
|
237
243
|
## (Very) Short FAQ ##
|
238
244
|
|
239
|
-
### So, does amqp gem only work with RabbitMQ?
|
245
|
+
### So, does amqp gem only work with RabbitMQ?
|
240
246
|
|
241
247
|
This library is developed and tested primarily with [RabbitMQ](http://rabbitmq.com), although it should be compatible with any
|
242
248
|
server implementing the [AMQP 0.9.1 spec](http://bit.ly/hw2ELX). For AMQP 0.8 brokers, use amqp gem version 0.7.x.
|
243
249
|
|
244
|
-
### Why isn't Ruby 1.8.7
|
250
|
+
### Why isn't Ruby 1.8.7-p249 supported? Will it be supported in the future?
|
245
251
|
|
246
252
|
In order to make code like the following (pseudo-synchronous) work
|
247
253
|
|
248
|
-
|
249
|
-
|
254
|
+
``` ruby
|
255
|
+
conn = AMQP.connect
|
256
|
+
ch = AMQP::Channel.new(conn)
|
250
257
|
|
251
|
-
|
252
|
-
|
258
|
+
ex = ch.default_exchange
|
259
|
+
ex.publish(some_data)
|
260
|
+
```
|
253
261
|
|
254
262
|
and not be affected by this [Ruby 1.8.7-p249-specific bug (super called outside of method)](http://bit.ly/iONBmH), we need to
|
255
263
|
avoid any inheritance for key amqp gem classes: Channel, Queue, Exchange, Consumer. This will take a significant refactoring effort and
|
256
264
|
we do not expect this to change at this time.
|
257
265
|
|
258
266
|
|
259
|
-
### How does amqp gem relate to amq-client gem, amq-protocol and libraries like
|
267
|
+
### How does amqp gem relate to amq-client gem, amq-protocol and libraries like Bunny?
|
260
268
|
|
261
269
|
See [this page about AMQP gems family](https://github.com/ruby-amqp/amq-client/blob/master/README.textile)
|
data/amqp.gemspec
CHANGED
@@ -8,10 +8,10 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.name = "amqp"
|
9
9
|
s.version = AMQP::VERSION
|
10
10
|
s.authors = ["Aman Gupta", "Jakub Stastny aka botanicus", "Michael S. Klishin"]
|
11
|
-
s.homepage = "http://
|
12
|
-
s.summary = "Widely used, feature-rich asynchronous
|
11
|
+
s.homepage = "http://rubyamqp.info"
|
12
|
+
s.summary = "Widely used, feature-rich asynchronous RabbitMQ client with batteries included"
|
13
13
|
# RubyGems will emit warnings if summary is the same as description. I have no idea why but lets trick it. MK.
|
14
|
-
s.description = "Widely used, feature-rich asynchronous AMQP
|
14
|
+
s.description = "Widely used, feature-rich asynchronous AMQP RabbitMQ client with batteries included."
|
15
15
|
s.email = ["bWljaGFlbEBub3ZlbWJlcmFpbi5jb20=\n", "c3Rhc3RueUAxMDFpZGVhcy5jeg==\n"].map { |i| Base64.decode64(i) }
|
16
16
|
s.licenses = ["Ruby"]
|
17
17
|
|
@@ -24,16 +24,8 @@ Gem::Specification.new do |s|
|
|
24
24
|
|
25
25
|
# Dependencies
|
26
26
|
s.add_dependency "eventmachine"
|
27
|
-
s.add_dependency "amq-client", "~> 1.0.0
|
28
|
-
s.add_dependency "amq-protocol", "~> 1.
|
27
|
+
s.add_dependency "amq-client", "~> 1.0.0"
|
28
|
+
s.add_dependency "amq-protocol", "~> 1.2.0"
|
29
29
|
|
30
|
-
begin
|
31
|
-
require "changelog"
|
32
|
-
s.post_install_message = CHANGELOG.new.version_changes
|
33
|
-
rescue LoadError
|
34
|
-
# warn "You have to have changelog gem installed for post install message"
|
35
|
-
end
|
36
|
-
|
37
|
-
# RubyForge
|
38
30
|
s.rubyforge_project = "amqp"
|
39
31
|
end
|
data/docs/08Migration.textile
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
h1. AMQP 0.9.1 Model Explained
|
4
4
|
|
5
|
+
h2. This Documentation Has Moved to rubyamqp.info
|
6
|
+
|
7
|
+
amqp gem documentation guides are now hosted on "rubyamqp.info":http://rubyamqp.info.
|
8
|
+
|
9
|
+
|
5
10
|
h2. About this guide
|
6
11
|
|
7
12
|
This guide explains the AMQP 0.9.1 Model used by RabbitMQ. Understanding the AMQP Model will make a lot of other documentation, both for the Ruby amqp gem and
|
@@ -107,7 +112,7 @@ but it is possible to extend AMQP 0.9.1 brokers with custom exchange types, for
|
|
107
112
|
|
108
113
|
and so on.
|
109
114
|
|
110
|
-
Besides the type, exchanges have a number of attributes, most
|
115
|
+
Besides the type, exchanges have a number of attributes, most important of which are:
|
111
116
|
|
112
117
|
* Name
|
113
118
|
* Can be durable (information about them is persisted to disk and thus survives broker restarts) or non-durable (information is only kept in RAM)
|
data/docs/Bindings.textile
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
h1. Working With Bindings
|
4
4
|
|
5
|
+
h2. This Documentation Has Moved to rubyamqp.info
|
6
|
+
|
7
|
+
amqp gem documentation guides are now hosted on "rubyamqp.info":http://rubyamqp.info.
|
8
|
+
|
5
9
|
h2. About this guide
|
6
10
|
|
7
11
|
This guide covers bindings in AMQP 0.9.1, what they are, what role do they play and how to accomplish typical operations using
|
data/docs/Clustering.textile
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
h1. Ruby AMQP gem documentation guides
|
4
4
|
|
5
|
+
h2. This Documentation Has Moved to rubyamqp.info
|
6
|
+
|
7
|
+
amqp gem documentation guides are now hosted on "rubyamqp.info":http://rubyamqp.info.
|
8
|
+
|
5
9
|
h2. Which versions of the amqp gem do the guides cover?
|
6
10
|
|
7
11
|
These guides cover v0.8.0.RC14 and later of the "Ruby amqp gem":http://github.com/ruby-amqp/amqp.
|
data/docs/Durability.textile
CHANGED
data/docs/ErrorHandling.textile
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
h1. Error handling and recovery
|
4
4
|
|
5
|
+
h2. This Documentation Has Moved to rubyamqp.info
|
6
|
+
|
7
|
+
amqp gem documentation guides are now hosted on "rubyamqp.info":http://rubyamqp.info.
|
8
|
+
|
5
9
|
h2. About this guide
|
6
10
|
|
7
11
|
Development of a robust application, be it message publisher or message consumer, involves dealing with multiple kinds of failures: protocol exceptions, network failures, broker failures and so on. Correct error handling and recovery is not easy. This guide explains how amqp gem helps you in dealing with issues like
|