amqp 1.0.0.pre2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.travis.yml +3 -0
  2. data/README.md +80 -72
  3. data/amqp.gemspec +5 -13
  4. data/docs/08Migration.textile +4 -0
  5. data/docs/AMQP091ModelExplained.textile +6 -1
  6. data/docs/Bindings.textile +4 -0
  7. data/docs/Clustering.textile +4 -0
  8. data/docs/ConnectingToTheBroker.textile +4 -0
  9. data/docs/ConnectionEncryptionWithTLS.textile +4 -0
  10. data/docs/DocumentationGuidesIndex.textile +4 -0
  11. data/docs/Durability.textile +4 -0
  12. data/docs/ErrorHandling.textile +4 -0
  13. data/docs/Exchanges.textile +4 -0
  14. data/docs/GettingStarted.textile +4 -0
  15. data/docs/PatternsAndUseCases.textile +4 -1
  16. data/docs/Queues.textile +4 -0
  17. data/docs/RabbitMQVersions.textile +4 -0
  18. data/docs/RunningTests.textile +4 -0
  19. data/docs/TestingWithEventedSpec.textile +4 -0
  20. data/docs/Troubleshooting.textile +4 -0
  21. data/docs/VendorSpecificExtensions.textile +4 -0
  22. data/examples/error_handling/automatic_recovery_of_channel_and_queues.rb +1 -1
  23. data/examples/error_handling/automatically_recovering_hello_world_consumer.rb +1 -1
  24. data/examples/error_handling/automatically_recovering_hello_world_consumer_that_uses_a_server_named_queue.rb +1 -1
  25. data/examples/error_handling/connection_level_exception.rb +1 -1
  26. data/examples/error_handling/connection_level_exception_with_objects.rb +1 -1
  27. data/examples/error_handling/connection_loss_handler.rb +4 -3
  28. data/examples/error_handling/hello_world_producer.rb +1 -1
  29. data/examples/error_handling/manual_connection_and_channel_recovery.rb +1 -1
  30. data/examples/extensions/rabbitmq/publisher_confirmations_with_transient_messages.rb +1 -1
  31. data/examples/extensions/rabbitmq/using_alternate_exchanges.rb +1 -1
  32. data/examples/guides/getting_started/01_hello_world.rb +1 -1
  33. data/examples/guides/getting_started/02_hello_world_dslified.rb +1 -1
  34. data/examples/hello_world.rb +1 -1
  35. data/examples/hello_world_with_an_empty_string.rb +1 -1
  36. data/examples/hello_world_with_eventmachine_in_a_separate_thread.rb +2 -2
  37. data/examples/hello_world_with_large_payload.rb +41 -41
  38. data/examples/patterns/request_reply/client.rb +1 -2
  39. data/examples/patterns/request_reply/server.rb +0 -1
  40. data/examples/publishing/returned_messages.rb +1 -1
  41. data/examples/queues/accessing_message_metadata.rb +1 -1
  42. data/examples/queues/cancel_default_consumer.rb +1 -1
  43. data/lib/amqp/channel.rb +34 -16
  44. data/lib/amqp/client.rb +2 -2
  45. data/lib/amqp/connection.rb +2 -1
  46. data/lib/amqp/consumer.rb +2 -2
  47. data/lib/amqp/exceptions.rb +11 -2
  48. data/lib/amqp/exchange.rb +5 -5
  49. data/lib/amqp/queue.rb +51 -26
  50. data/lib/amqp/session.rb +5 -5
  51. data/lib/amqp/version.rb +1 -1
  52. data/spec/integration/basic_get_spec.rb +82 -27
  53. data/spec/integration/basic_return_spec.rb +3 -3
  54. data/spec/integration/channel_level_exception_with_multiple_channels_spec.rb +0 -1
  55. data/spec/integration/exchange_declaration_spec.rb +71 -102
  56. data/spec/integration/extensions/rabbitmq/publisher_confirmations_spec.rb +1 -1
  57. data/spec/integration/fanout_exchange_routing_spec.rb +1 -1
  58. data/spec/integration/multiple_consumers_per_queue_spec.rb +3 -160
  59. data/spec/integration/queue_redeclaration_with_incompatible_attributes_spec.rb +25 -12
  60. data/spec/integration/regressions/concurrent_publishing_on_the_same_channel_spec.rb +1 -1
  61. data/spec/integration/remove_individual_binding_spec.rb +51 -0
  62. data/spec/integration/reply_queue_communication_spec.rb +1 -2
  63. data/spec/integration/store_and_forward_spec.rb +6 -9
  64. data/spec/integration/topic_subscription_spec.rb +5 -4
  65. data/spec/spec_helper.rb +8 -2
  66. data/spec/unit/amqp/connection_spec.rb +3 -1
  67. metadata +93 -109
  68. data/spec/integration/immediate_messages_spec.rb +0 -59
@@ -43,3 +43,6 @@ matrix:
43
43
  gemfile: gemfiles/eventmachine-pre
44
44
  - rvm: 1.9.2
45
45
  gemfile: Gemfile
46
+
47
+ services:
48
+ - rabbitmq
data/README.md CHANGED
@@ -1,20 +1,19 @@
1
- # About Ruby amqp gem #
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://bit.ly/amqp-model-explained) (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).
7
-
8
- [![Continuous Integration status](https://secure.travis-ci.org/ruby-amqp/amqp.png?branch=master)](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://bit.ly/getting-started-with-amqp-ruby-gem) and other [documentation guides](http://bit.ly/amqp-gem-docs). We recommend that you read [AMQP 0.9.1 Model Explained](http://bit.ly/amqp-model-explained), too.
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 --pre
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
- #!/usr/bin/env ruby
84
- # encoding: utf-8
82
+ ``` ruby
83
+ #!/usr/bin/env ruby
84
+ # encoding: utf-8
85
85
 
86
- require "rubygems"
87
- # or
88
- #
89
- # require "bundler"
90
- # Bundler.setup
91
- #
92
- # if you use Bundler
86
+ require "rubygems"
87
+ # or
88
+ #
89
+ # require "bundler"
90
+ # Bundler.setup
91
+ #
92
+ # if you use Bundler
93
93
 
94
- require 'amqp'
94
+ require 'amqp'
95
95
 
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..."
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
- channel = AMQP::Channel.new(connection)
101
- queue = channel.queue("amqpgem.examples.hello_world", :auto_delete => true)
102
- exchange = channel.default_exchange
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
- queue.subscribe do |payload|
105
- puts "Received a message: #{payload}. Disconnecting..."
104
+ queue.subscribe do |payload|
105
+ puts "Received a message: #{payload}. Disconnecting..."
106
106
 
107
- connection.close {
108
- EventMachine.stop { exit }
109
- }
110
- end
107
+ connection.close {
108
+ EventMachine.stop { exit }
109
+ }
110
+ end
111
111
 
112
- exchange.publish "Hello, world!", :routing_key => queue.name
113
- end
112
+ exchange.publish "Hello, world!", :routing_key => queue.name
113
+ end
114
+ ```
114
115
 
115
116
 
116
- [Getting started guide](http://bit.ly/getting-started-with-amqp-ruby-gem) explains this and two more examples in detail,
117
- and is written in a form of a tutorial. See [AMQP Model Explained](http://bit.ly/amqp-model-explained) if you want
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://bit.ly/getting-started-with-amqp-ruby-gem) is written as a tutorial that walks you through
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 Protocol Tutorial](http://bit.ly/amqp-model-explained) will introduce you to protocol concepts
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
- ### Examples ###
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://bit.ly/amqp-gem-patterns) documentation guide.
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
- ### Documentation guides ###
158
+ ### API reference
152
159
 
153
- [Documentation guides](http://rubyamqp.info) (also [on rubydoc.info](http://bit.ly/amqp-gem-docs)) describe the library itself as well as AMQP concepts, usage scenarios, topics like working with exchanges and queues,
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
- [API reference](http://bit.ly/mDm1JE) is up on [rubydoc.info](http://rubydoc.info) and is updated daily.
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
- We cover Web application integration for multiple Ruby Web servers in [Connecting to the broker guide](http://bit.ly/kFCVQU).
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://bit.ly/amqp-gem-080-migration).
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
- ## Community
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
+ [![Continuous Integration status](https://secure.travis-ci.org/ruby-amqp/amqp.png?branch=master)](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://bit.ly/amqp-gem-docs)
193
- * [Code Examples](https://github.com/ruby-amqp/amq-protocol/tree/master/examples/)
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 — 2011 [ruby-amqp](https://github.com/ruby-amqp) group members.
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://bit.ly/amqp-model-explained)
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.-p249 supported? Will it be supported in the future? ###
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
- conn = AMQP.connect
249
- ch = AMQP::Channel.new(conn)
254
+ ``` ruby
255
+ conn = AMQP.connect
256
+ ch = AMQP::Channel.new(conn)
250
257
 
251
- ex = ch.default_exchange
252
- ex.publish(some_data)
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 bunny? ###
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)
@@ -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://github.com/ruby-amqp/amqp"
12
- s.summary = "Widely used, feature-rich asynchronous AMQP 0.9.1 client with batteries included"
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 0.9.1 client with batteries included."
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.pre2"
28
- s.add_dependency "amq-protocol", "~> 1.0.0.pre6"
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
@@ -2,6 +2,10 @@
2
2
 
3
3
  h1. amqp gem 0.8 migration guide
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
 
6
10
  h2. About this guide
7
11
 
@@ -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 imprortant of which are:
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)
@@ -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
@@ -2,6 +2,10 @@
2
2
 
3
3
  h1. Clustering
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
 
6
10
  h2. About this guide
7
11
 
@@ -2,6 +2,10 @@
2
2
 
3
3
  h1. Connecting to the broker, integrating with Ruby on Rails, Merb and Sinatra
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
 
6
10
  h2. About this guide
7
11
 
@@ -2,6 +2,10 @@
2
2
 
3
3
  h1. Using TLS with Ruby amqp gem
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
 
6
10
  h2. About this guide
7
11
 
@@ -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.
@@ -2,6 +2,10 @@
2
2
 
3
3
  h1. Durability and related matters
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
 
6
10
  h2. About this guide
7
11
 
@@ -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