amqp 1.0.4 → 1.1.0.pre1

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.
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).