amqp 1.0.4 → 1.1.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f4554e86bc490a5dd3f2f784c70832873ed368e
4
- data.tar.gz: 80190eba660ef0ec09858e79ad12d0a5709e5f9f
3
+ metadata.gz: 01406174e5cb3d674733040989c60c3c8c0392b3
4
+ data.tar.gz: c01d64774da2210e3c9d4b1ba8f3f934b7174209
5
5
  SHA512:
6
- metadata.gz: 0e5a30019a6648312dca81aaac924ebd3a8a156d8bcd32029ed599194b378670022f8f932d769feb3dba93799d162a1aad2843e8d79ce57ad3e054132d986486
7
- data.tar.gz: 19061cf19243bcc120ecefb9ba68dc8e112f52f766b9e2e932647c6d98734fda345e9e60daa1a1586507cecaaa78d04a408004f8e14b312cc2a0c43e6db3c9fb
6
+ metadata.gz: 268b7dd0dba139086ad620543cc034c402e794461e7908308e5a748c205020a9d815be0461dc0fa768dccca2c633bfd954220bd768f086ab3b252220a4eaa4b2
7
+ data.tar.gz: 304a194b0860926c7318d8f89b64de2a1e6fe6317249cde8d521581e5e9009b95ca93c6d86671a5aa3035802153974531cd4d5e903f167741a9dc4f937bbb6b0
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ doc/*
16
16
  tmp/*
17
17
  bin/*
18
18
  .AppleDouble/*
19
+ debug/*
@@ -0,0 +1 @@
1
+ 2.0.0@rabbitmq
@@ -0,0 +1,35 @@
1
+ ## Changes Between 1.0.0 and 1.1.0
2
+
3
+ ### AMQP::Channel#confirm_select is Now Delayed
4
+
5
+ `AMQP::Channel#confirm_select` is now delayed until after the channel
6
+ is opened, making it possible to use it with the pseudo-synchronous
7
+ code style.
8
+
9
+ ### RabbitMQ Extensions are Now in Core
10
+
11
+ amqp gem has been targeting RabbitMQ exclusively for a while now.
12
+
13
+ RabbitMQ extensions are now loaded by default and will be even more
14
+ tightly integrated in the future.
15
+
16
+ ### AMQP::Channel.default is Removed
17
+
18
+ `AMQP::Channel.default` and method_missing-based operations on the default
19
+ channel has been removed. They've been deprecated since 0.6.
20
+
21
+ ### AMQP::Channel#rpc is Removed
22
+
23
+ `AMQP::RPC`-related code has been removed. It has been deprecated
24
+ since 0.7.
25
+
26
+ ### AMQP::Channel.on_error is Removed
27
+
28
+ Long time deprecated `AMQP::Channel.on_error` is removed.
29
+
30
+
31
+ ## Version 1.0.0
32
+
33
+ ### Deprecated APIs are Being Removed
34
+
35
+ Most of public API bits deprecated in 0.8.0 are COMPLETELY REMOVED.
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- source :rubygems
3
+ source "https://rubygems.org"
4
4
 
5
5
  # Use local clones if possible.
6
6
  # If you want to use your local copy, just symlink it to vendor.
@@ -14,7 +14,7 @@ def custom_gem(name, options = Hash.new)
14
14
  end
15
15
  end
16
16
 
17
- custom_gem "eventmachine"
17
+ custom_gem "eventmachine", ">= 1.0.0"
18
18
  # gem "json", :platform => :ruby_18
19
19
  custom_gem "amq-client", :git => "git://github.com/ruby-amqp/amq-client.git", :branch => "master"
20
20
  custom_gem "amq-protocol", :git => "git://github.com/ruby-amqp/amq-protocol.git", :branch => "master"
@@ -32,13 +32,11 @@ group :development do
32
32
  gem "thin"
33
33
  gem "unicorn"
34
34
  end
35
-
36
- gem "changelog"
37
35
  end
38
36
 
39
37
  group :test do
40
38
  gem "rspec", "~> 2.6.0"
41
- gem "rake", "~> 0.9.2"
39
+ gem "rake", "~> 10.0.0"
42
40
 
43
41
  custom_gem "evented-spec", :git => "git://github.com/ruby-amqp/evented-spec.git", :branch => "master"
44
42
  gem "effin_utf8"
data/README.md CHANGED
@@ -6,25 +6,20 @@ This library works with Ruby 1.8.7 (*except for p249*, see the FAQ), Ruby 1.9.2,
6
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).
7
7
 
8
8
 
9
- ## I know what RabbitMQ is, how do I get started?
9
+ ## I know what AMQP is, how do I get started?
10
10
 
11
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)
13
- and consider [Bunny](http://rubybunny.info) and [March Hare](http://rubymarchhare.info), too.
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 0.9.1?
16
+ ## What is AMQP?
18
17
 
19
- AMQP 0.9.1 is a messaging middleware protocol that emphasizes
20
- interoperability between different technologies (for example, Java,
21
- .NET, Ruby, Python, Node.js, Erlang, C and so on).
18
+ AMQP is an [open standard for messaging middleware](http://www.amqp.org/confluence/display/AMQP/About+AMQP) that
19
+ emphasizes interoperability between different technologies (for example, Java, .NET, Ruby, Python, Node.js, Erlang, C and so on).
22
20
 
23
- Key features of AMQP 0.9.1 are very flexible yet simple routing and binary
24
- protocol efficiency. AMQP 0.9.1 supports many sophisticated features, for
25
- example, message acknowledgements, returning of messages to producer,
26
- redelivery of messages that couldn't be processed, load balancing
27
- between message consumers and so on.
21
+ Key features of AMQP are very flexible yet simple routing and binary protocol efficiency. AMQP supports many sophisticated features, for example,
22
+ message acknowledgements, returning of messages to producer, redelivery of messages that couldn't be processed, load balancing between message consumers and so on.
28
23
 
29
24
 
30
25
  ## What is amqp gem good for?
@@ -183,14 +178,14 @@ We cover Web application integration for multiple Ruby Web servers in [Connectin
183
178
 
184
179
  ## Migration from amqp gem 0.6.x and 0.7.x
185
180
 
186
- 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/).
181
+ Upgrading from amqp gem 0.6.x and 0.7.x to 0.8.0+ is straightforward, please see [amqp gem 0.8.0 migration guide](http://rubyamqp.info/articles/08_migration/).
187
182
  The same guide explains amqp gem versions history and why you would want to upgrade.
188
183
 
189
184
 
190
185
 
191
186
  ## Maintainer Information
192
187
 
193
- amqp gem is maintained by [Michael Klishin](https://github.com/michaelklishin).
188
+ amqp gem is maintained by [Michael Klishin](http://twitter.com/michaelklishin).
194
189
 
195
190
 
196
191
  ## Continuous Integration
@@ -24,8 +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.3"
28
- s.add_dependency "amq-protocol", ">= 1.9.0"
27
+ s.add_dependency "amq-client", "~> 1.1.0.pre1"
28
+ s.add_dependency "amq-protocol", ">= 1.6.0"
29
29
 
30
30
  s.rubyforge_project = "amqp"
31
31
  end
@@ -213,7 +213,6 @@ module AMQP
213
213
 
214
214
  super(@connection, id, options)
215
215
 
216
- @rpcs = Hash.new
217
216
  # we need this deferrable to mimic what AMQP gem 0.7 does to enable
218
217
  # the following (pseudo-synchronous) style of programming some people use in their
219
218
  # existing codebases:
@@ -344,10 +343,6 @@ module AMQP
344
343
  # method it will raise a channel or connection exception.
345
344
  #
346
345
  #
347
- # @raise [AMQP::Error] Raised when exchange is redeclared with parameters different from original declaration.
348
- # @raise [AMQP::Error] Raised when exchange is declared with :passive => true and the exchange does not exist.
349
- #
350
- #
351
346
  # @example Using default pre-declared direct exchange and no callbacks (pseudo-synchronous style)
352
347
  #
353
348
  # # an exchange application A will be using to publish updates
@@ -475,11 +470,6 @@ module AMQP
475
470
  # not wait for a reply method. If the server could not complete the
476
471
  # method it will raise a channel or connection exception.
477
472
  #
478
- #
479
- # @raise [AMQP::Error] Raised when exchange is redeclared with parameters different from original declaration.
480
- # @raise [AMQP::Error] Raised when exchange is declared with :passive => true and the exchange does not exist.
481
- #
482
- #
483
473
  # @example Using fanout exchange to deliver messages to multiple consumers
484
474
  #
485
475
  # # open up a channel
@@ -540,11 +530,6 @@ module AMQP
540
530
  # not wait for a reply method. If the server could not complete the
541
531
  # method it will raise a channel or connection exception.
542
532
  #
543
- #
544
- # @raise [AMQP::Error] Raised when exchange is redeclared with parameters different from original declaration.
545
- # @raise [AMQP::Error] Raised when exchange is declared with :passive => true and the exchange does not exist.
546
- #
547
- #
548
533
  # @example Using topic exchange to deliver relevant news updates
549
534
  # AMQP.connect do |connection|
550
535
  # channel = AMQP::Channel.new(connection)
@@ -656,10 +641,6 @@ module AMQP
656
641
  # method it will raise a channel or connection exception.
657
642
  #
658
643
  #
659
- # @raise [AMQP::Error] Raised when exchange is redeclared with parameters different from original declaration.
660
- # @raise [AMQP::Error] Raised when exchange is declared with :passive => true and the exchange does not exist.
661
- #
662
- #
663
644
  # @example Using headers exchange to route messages based on multiple attributes (OS, architecture, # of cores)
664
645
  #
665
646
  # puts "=> Headers routing example"
@@ -801,12 +782,6 @@ module AMQP
801
782
  # not wait for a reply method. If the server could not complete the
802
783
  # method it will raise a channel or connection exception.
803
784
  #
804
- #
805
- # @raise [AMQP::Error] Raised when queue is redeclared with parameters different from original declaration.
806
- # @raise [AMQP::Error] Raised when queue is declared with :passive => true and the queue does not exist.
807
- # @raise [AMQP::Error] Raised when queue is declared with :exclusive => true and queue with that name already exist.
808
- #
809
- #
810
785
  # @yield [queue, declare_ok] Yields successfully declared queue instance and AMQP method (queue.declare-ok) instance. The latter is optional.
811
786
  # @yieldparam [Queue] queue Queue that is successfully declared and is ready to be used.
812
787
  # @yieldparam [AMQP::Protocol::Queue::DeclareOk] declare_ok AMQP queue.declare-ok) instance.
@@ -869,49 +844,6 @@ module AMQP
869
844
 
870
845
 
871
846
 
872
- # Instantiates and returns an RPC instance associated with this channel.
873
- #
874
- # The optional object may be a class name, module name or object
875
- # instance. When given a class or module name, the object is instantiated
876
- # during this setup. The passed queue is automatically subscribed to so
877
- # it passes all messages (and their arguments) to the object.
878
- #
879
- # Marshalling and unmarshalling the objects is handled internally. This
880
- # marshalling is subject to the same restrictions as defined in the
881
- # [http://ruby-doc.org/core/classes/Marshal.html Marshal module} in the Ruby standard
882
- # library.
883
- #
884
- # When the optional object is not passed, the returned rpc reference is
885
- # used to send messages and arguments to the queue. See {AMQP::RPC#method_missing}
886
- # which does all of the heavy lifting with the proxy. Some client
887
- # elsewhere must call this method *with* the optional block so that
888
- # there is a valid destination. Failure to do so will just enqueue
889
- # marshalled messages that are never consumed.
890
- #
891
- # @example Use of RPC
892
- #
893
- # # TODO
894
- #
895
- #
896
- # @param [String, Queue] Queue to be used by RPC server.
897
- # @return [RPC]
898
- # @api public
899
- def rpc(name, obj = nil)
900
- RPC.new(self, name, obj)
901
- end
902
-
903
-
904
-
905
- # Returns a hash of all rpc proxy objects.
906
- #
907
- # Most of the time, this method is not
908
- # called by application code.
909
- # @api plugin
910
- def rpcs
911
- @rpcs.values
912
- end
913
-
914
-
915
847
 
916
848
  # @group Channel lifecycle
917
849
 
@@ -1092,20 +1024,18 @@ module AMQP
1092
1024
  super(&block)
1093
1025
  end
1094
1026
 
1027
+ # @endgroup
1095
1028
 
1096
- # Defines a global callback to be run on channel-level exception across
1097
- # all channels. Consider using Channel#on_error instead. This method is here for sake
1098
- # of backwards compatibility with 0.6.x and 0.7.x releases.
1099
- # @see AMQP::Channel#on_error
1100
- # @deprecated
1101
- # @api public
1102
- def self.on_error(&block)
1103
- self.error(&block)
1104
- end # self.on_error(&block)
1105
1029
 
1106
- # @endgroup
1030
+ # @group Publisher Confirms
1107
1031
 
1032
+ def confirm_select(nowait = false, &block)
1033
+ self.once_open do
1034
+ super(nowait, &block)
1035
+ end
1036
+ end
1108
1037
 
1038
+ # @endgroup
1109
1039
 
1110
1040
 
1111
1041
  #
@@ -1177,7 +1107,6 @@ module AMQP
1177
1107
  # @api plugin
1178
1108
  def reset_state!
1179
1109
  super
1180
- @rpcs = Hash.new
1181
1110
  end # reset_state!
1182
1111
 
1183
1112
 
@@ -1248,46 +1177,6 @@ module AMQP
1248
1177
  @int_allocator ||= IntAllocator.new(1, max_channel)
1249
1178
  end # self.initialize_channel_id_allocator
1250
1179
 
1251
- # @private
1252
- # @api plugin
1253
- def register_rpc(rpc)
1254
- raise ArgumentError, "argument is nil!" unless rpc
1255
-
1256
- @rpcs[rpc.name] = rpc
1257
- end # register_rpc(rpc)
1258
-
1259
- # @private
1260
- # @api plugin
1261
- def find_rpc(name)
1262
- @rpcs[name]
1263
- end
1264
-
1265
-
1266
- #
1267
- # Backwards compatibility with 0.6.x
1268
- #
1269
-
1270
- # unique identifier of the default thread-local channel
1271
- # @deprecated
1272
- # @private
1273
- def self.id
1274
- Thread.current[:mq_id] ||= "#{`hostname`.strip}-#{Process.pid}-#{Thread.current.object_id}"
1275
- end
1276
-
1277
- # @private
1278
- # @deprecated
1279
- def self.default
1280
- # TODO: clear this when connection is closed
1281
- Thread.current[:mq] ||= AMQP::Channel.new
1282
- end
1283
-
1284
- # Allows for calls to all MQ instance methods. This implicitly calls
1285
- # AMQP::Channel.new so that a new channel is allocated for subsequent operations.
1286
- # @deprecated
1287
- def self.method_missing(meth, *args, &blk)
1288
- self.default.__send__(meth, *args, &blk)
1289
- end
1290
-
1291
1180
 
1292
1181
  protected
1293
1182
 
@@ -39,9 +39,6 @@ module AMQP
39
39
  AMQP.client.connect(opts.merge(options))
40
40
  end
41
41
 
42
- connection.on_open do
43
- require "amqp/extensions/rabbitmq" if connection.broker.rabbitmq?
44
- end
45
42
  connection
46
43
  end
47
44
 
@@ -50,7 +50,7 @@ module AMQP
50
50
  # As part of the standard, the server _must_ predeclare the direct exchange
51
51
  # 'amq.direct' and the fanout exchange 'amq.fanout' (all exchange names
52
52
  # starting with 'amq.' are reserved). Attempts to declare an exchange using
53
- # 'amq.' as the name will raise an AMQP::Error and fail. In practice these
53
+ # 'amq.' as the name will result in a channel-level exception and fail. In practice these
54
54
  # default exchanges are never used directly by client code.
55
55
  #
56
56
  #
@@ -278,10 +278,6 @@ module AMQP
278
278
  # @option opts [Hash] :arguments (nil) A hash of optional arguments with the declaration. Some brokers implement
279
279
  # AMQP extensions using x-prefixed declaration arguments.
280
280
  #
281
- #
282
- # @raise [AMQP::Error] Raised when exchange is redeclared with parameters different from original declaration.
283
- # @raise [AMQP::Error] Raised when exchange is declared with :passive => true and the exchange does not exist.
284
- #
285
281
  # @yield [exchange, declare_ok] Yields successfully declared exchange instance and AMQP method (exchange.declare-ok) instance. The latter is optional.
286
282
  # @yieldparam [Exchange] exchange Exchange that is successfully declared and is ready to be used.
287
283
  # @yieldparam [AMQP::Protocol::Exchange::DeclareOk] declare_ok AMQP exchange.declare-ok) instance.
@@ -1,3 +1,3 @@
1
1
  # encoding: utf-8
2
2
 
3
- require "amq/client/extensions/rabbitmq"
3
+ # No-op as of 1.1
@@ -6,5 +6,5 @@ module AMQP
6
6
  #
7
7
  # @see AMQ::Protocol::VERSION
8
8
  # @return [String] AMQP gem version
9
- VERSION = '1.0.4'
9
+ VERSION = '1.1.0.pre1'
10
10
  end
@@ -35,13 +35,6 @@ describe AMQP do
35
35
  end
36
36
  @q1 = @channel.queue(name, options)
37
37
 
38
- # backwards compatibility, please consider against
39
- # using global error handlers in your programs!
40
- AMQP::Channel.on_error do |msg|
41
- puts "Global handler has fired: #{msg}"
42
- @global_callback_fired = true
43
- end
44
-
45
38
  # Small delays to ensure the order of execution
46
39
  delayed(0.1) {
47
40
  @other_channel = AMQP::Channel.new
@@ -58,7 +51,6 @@ describe AMQP do
58
51
 
59
52
  done(0.4) {
60
53
  @callback_fired.should be_true
61
- @global_callback_fired.should be_true
62
54
  # looks like there is a difference between platforms/machines
63
55
  # so check either one. MK.
64
56
  @other_channel.closed?.should be_true
@@ -49,7 +49,7 @@ describe "Headers exchange" do
49
49
  end
50
50
 
51
51
  any_linux_messages = []
52
- @channel.queue("", :auto_delete => true).bind(exchange, :arguments => { :os => 'linux' }).subscribe do |metadata, payload|
52
+ @channel.queue("", :auto_delete => true).bind(exchange, :arguments => { "x-match" => "any", :os => 'linux' }).subscribe do |metadata, payload|
53
53
  any_linux_messages << [metadata, payload]
54
54
  end
55
55
 
@@ -59,7 +59,7 @@ describe "Headers exchange" do
59
59
  end
60
60
 
61
61
  riak_messages = []
62
- @channel.queue("", :auto_delete => true).bind(exchange, :arguments => { :package => { :name => 'riak', :version => '0.14.2' } }).subscribe do |metadata, payload|
62
+ @channel.queue("", :auto_delete => true).bind(exchange, :arguments => { "x-match" => "any", :package => { :name => 'riak', :version => '0.14.2' } }).subscribe do |metadata, payload|
63
63
  riak_messages << [metadata, payload]
64
64
  end
65
65
 
@@ -110,7 +110,7 @@ describe "Multiple consumers" do
110
110
  @queue = @channel.queue("", :auto_delete => true)
111
111
  @exchange = @channel.headers("amqpgem.tests.integration.headers.exchange1", :auto_delete => true)
112
112
 
113
- @queue.bind(@exchange, :arguments => { :slug => "all" })
113
+ @queue.bind(@exchange, :arguments => { :slug => "all", "x-match" => "any" })
114
114
  end
115
115
 
116
116
 
@@ -47,7 +47,7 @@ describe "Store-and-forward routing" do
47
47
  expected_number_of_messages = 300
48
48
  # It is always a good idea to use non-ASCII charachters in
49
49
  # various test suites. MK.
50
- dispatched_data = "libertà è participazione (inviato a #{Time.now.to_i})"
50
+ dispatched_data = "messages sent at #{Time.now.to_i}"
51
51
 
52
52
  @queue.purge
53
53
  @queue.subscribe(:ack => false) do |payload|
@@ -81,8 +81,8 @@ describe "Store-and-forward routing" do
81
81
  @exchange.publish(rand, :key => @queue_name)
82
82
  end
83
83
 
84
- # 6 seconds are for Rubinius, it is surprisingly slow on this workload
85
- done(6.0) {
84
+ # 5 seconds are for Rubinius, it is surprisingly slow on this workload
85
+ done(5.0) {
86
86
  number_of_received_messages.should == expected_number_of_messages
87
87
  @queue.unsubscribe
88
88
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-11-21 00:00:00.000000000 Z
13
+ date: 2013-06-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: eventmachine
@@ -32,28 +32,28 @@ dependencies:
32
32
  requirements:
33
33
  - - ~>
34
34
  - !ruby/object:Gem::Version
35
- version: 1.0.3
35
+ version: 1.1.0.pre1
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ~>
41
41
  - !ruby/object:Gem::Version
42
- version: 1.0.3
42
+ version: 1.1.0.pre1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: amq-protocol
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - '>='
48
48
  - !ruby/object:Gem::Version
49
- version: 1.9.0
49
+ version: 1.6.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - '>='
55
55
  - !ruby/object:Gem::Version
56
- version: 1.9.0
56
+ version: 1.6.0
57
57
  description: Widely used, feature-rich asynchronous RabbitMQ client with batteries
58
58
  included.
59
59
  email:
@@ -84,9 +84,10 @@ extra_rdoc_files:
84
84
  files:
85
85
  - .gitignore
86
86
  - .rspec
87
+ - .ruby-version
87
88
  - .travis.yml
88
89
  - .yardopts
89
- - CHANGELOG
90
+ - ChangeLog.md
90
91
  - Gemfile
91
92
  - README.md
92
93
  - Rakefile
@@ -319,12 +320,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
319
320
  version: '0'
320
321
  required_rubygems_version: !ruby/object:Gem::Requirement
321
322
  requirements:
322
- - - '>='
323
+ - - '>'
323
324
  - !ruby/object:Gem::Version
324
- version: '0'
325
+ version: 1.3.1
325
326
  requirements: []
326
327
  rubyforge_project: amqp
327
- rubygems_version: 2.1.6
328
+ rubygems_version: 2.0.3
328
329
  signing_key:
329
330
  specification_version: 4
330
331
  summary: Widely used, feature-rich asynchronous RabbitMQ client with batteries included
data/CHANGELOG DELETED
@@ -1,101 +0,0 @@
1
- = Version 1.0.0
2
-
3
- * [API] All public API bits deprecated in 0.8.0 are COMPLETELY REMOVED
4
-
5
- = Version 0.9.0 to 0.9.4
6
-
7
- * [BUG] A couple of concurrency issues (race conditions) fixed for apps that actively close and/or reuse channels
8
- * [BUG] AMQP::Queue#initialize with :nowait => true no longer fails with NoMethodError
9
- * [FEATURE] Automatic recovery mode now works for publishers
10
-
11
-
12
- = Version 0.8.1
13
-
14
- * [BUG] AMQP::Queue#status can no longer result in queue instance @ivars being changed.
15
- * [API] AMQP::Channel#reuse allows channel instance to be reused with a different channel id, may be used to recover from channel-level exceptions.
16
-
17
-
18
- = Version 0.8.0
19
-
20
- * [API] AMQP::Session#on_skipped_heartbeats callback that can be used to handle skipped heartbeats (for cases when TCP network failure detection is not timely enough)
21
- * [API] AMQP::Exchange#publish calls now use a mutex on the channel exchange is declared on. Sharing channels between threads is discouraged but amqp gem covers your back in the most dangerous case.
22
- * [API] AMQP::Channel#synchronize now can be used to guarantee mutual exclusion of multiple threads on channel instances.
23
- * [BUG] Empty messages can finally be published fine. Yes, it took us just 3 years.
24
- * [FEATURE] When connected to RabbitMQ, RabbitMQ-specific extensions are required automatically
25
- * [FEATURE] AMQP::Session#broker and AMQP::Broker allow for broker capabilities inspection
26
- * [FEATURE] New bitset-based channel id allocator
27
- * [FEATURE] Multiple consumers per queue with AMQP::Consumer
28
- * [FEATURE] Automatic recovery mode for channels
29
- * [FEATURE] Network connection recovery callbacks for channels, exchanges, queues, consumers
30
- * [API] Connection URI (string) format for vhosts no longer assumes that vhosts begin with a slash (/), learn more at http://bit.ly/mfzwcB
31
- * [FEATURE] Returned messages, including header & content via AMQP::Exchange#on_publish. Callback accepts 3 args: basic_return, header, body
32
- * [BUG] Ruby 1.8.7-p249 is not supported because of this (p249-specific) Ruby bug: http://bit.ly/iONBmH
33
- * [FEATURE] AMQP::Utilities::EventLoopHelper detects app server (if any) being used and starts EventMachine reactor in an optimal way.
34
- * [FEATURE] AMQP 0.9.1 support, including tx.* operations class.
35
- * [API] Default authentication handler now raises AMQP::PossibleAuthenticationFailureError
36
- * [API] AMQP::Channel#initialize now takes 3rd (optional) options hash.
37
- * [API] Broker connection class is now AMQP::Session.
38
- * [API] AMQP::Error instance now may carry cause, an exception that caused exception in question to be raised.
39
- * [API] When initial TCP connection fails, default action is now to raise AMQP::TCPConnectionFailed.
40
- * [API] AMQP::BasicClient#reconnect now takes 2nd optional argument, period of waiting in seconds.
41
- * [FEATURE] Handlers for initial connection failure, connection loss; channel-level exceptions handlers on Channel instances.
42
- * [API] AMQP::Exchange#initialize now accepts :arguments option that takes a hash.
43
- * [API] AMQP::Queue#initialize now accepts :arguments option that takes a hash.
44
- * [API] AMQP#Logger is deprecated. It will be removed before 1.0 release.
45
- * [API] AMQP#fork is deprecated. It will be removed before 1.0 release.
46
- * [API] AMQP::RPC is deprecated. It will be removed before 1.0 release.
47
- * [FEATURE] Significant improvements to the documentation. From now on lack of/poor documentation is considered a severe bug.
48
- * [FEATURE] Support for RabbitMQ extensions to AMQP 0.9.1
49
- * [API] AMQP::Exchange#publish now accepts (an optional) callback.
50
- * [API] AMQP::Channel.new now accepts (an optional) callback.
51
- * [API] AMQP::Header#ack now can acknowledge multiple deliveries
52
- * [API] AMQP::Exchange#delete now takes (an optional) block that is called when exchange.delete-ok response arrives.
53
- * [API] AMQP::Header now implements #to_hash
54
- * [API] AMQP::Queue#pop block now can take 1, 2 or 3 arguments.
55
- * [API] AMQP::Queue#purge now takes an optional block which is called when queue.purge-ok response arrives.
56
- * [API] AMQP::Queue#delete now takes an optional block which is called when queue.delete-ok response arrives.
57
- * [API] AMQP::Queue#delete now accepts :nowait option.
58
- * [API] AMQP::Queue#unbind now takes an optional block which is called when queue.unbind-ok response arrives.
59
- * [API] AMQP::Queue#unbind now accepts :routing_key as alias to :key. we believe it is a good idea to use AMQP terms.
60
- * [API] AMQP::Channel#prefetch now takes (an optional) 2nd parameter that specifies that QoS settings should be applied to underlying connection, as well as optional callback.
61
- * [API] AMQP::Channel#recover now takes (an optional) callback that is called when basic.recover-ok is received.
62
- * [API] AMQP::Frame is gone.
63
- * [API] AMQP::Buffer is gone. Serialization & framing are now handled primarily by amq-protocol.
64
- * [API] AMQP::Queue#publish is deprecated.
65
- * [API] Name argument for AMQP::Queue.new and Channel#queue is optional.
66
-
67
- = Version 0.7.1
68
-
69
- * [BUG] AMQP gem no longer conflicts with Builder 2.1.2 on Ruby 1.9.
70
- All Ruby on Rails 3 users who run Ruby 1.9 are highly recommended
71
- to upgrade!
72
- * [API] AMQP::Exchange.default no longer caches exchange object between calls
73
- because it may lead to very obscure issues when channel that exchange was
74
- using is closed (due to connection loss, as part of test suite teardown
75
- or in any other way).
76
-
77
- * [API] AMQP::Exchange.default now accepts channel as a parameter.
78
- * [API] AMQP::Exchange#channel
79
- * [BUG] Basic.Return is not supported by amqp gem yet, but it should not result in obscure exceptions
80
- * [API] AMQP::Exchange#publish now supports content type overriding.
81
- * [API] Introduce AMQP::Exchange #durable?, #transient?, #auto_deleted? and #passive?
82
- * [API] Introduce AMQP::Channel#open?
83
- * [BUG] AMQP connection was considered established prematurely.
84
- * [API] MQ.logging is removed; please use AMQP.logging from now on.
85
- * [API] MQ::Queue class is deprecated; please use AMQP::Queue from now on.
86
- * [API] MQ::Exchange class is deprecated; please use AMQP::Exchange from now on.
87
- * [API] MQ class is deprecated; please use AMQP::Channel from now on.
88
- * [API] require "mq" is deprecated; please use require "amqp" from now on.
89
-
90
-
91
- = Version 0.7
92
- * [BUG] Sync API for queues and exchanges, support for server-generated queues & exchange names (via semi-lazy collection).
93
- * [BUG] Sync API for MQ#close (Channel.Close) [issue #34].
94
- * [FEATURE] AMQP URL from majek's fork, with some fixes. Example: AMQP.start("amqps://")
95
- * [DEVELOP] Added some em-spec-based specs, bin/irb, Gemfile.
96
- * [FEATURE] Added MQ::Exchange.default for the default exchange.
97
- * [FEATURE] Raise an exception if we're trying to use Basic.Reject with RabbitMQ.
98
- * [FEATURE] Fail if an entity is re-declared with different options.
99
- * [BUG] Don't reconnect if the credentials are wrong.
100
- * [BUG] Fixed an exception which occurred when Queue#bind was called synchronously with a callback.
101
- * [DEVELOPMENT] Added a lot of specs (Bacon replaced by rSpec 2).