amqp 0.9.10 → 1.0.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.
Files changed (78) hide show
  1. data/.travis.yml +0 -3
  2. data/CHANGELOG +4 -0
  3. data/Gemfile +1 -0
  4. data/README.md +72 -81
  5. data/amqp.gemspec +14 -5
  6. data/docs/08Migration.textile +0 -4
  7. data/docs/AMQP091ModelExplained.textile +0 -5
  8. data/docs/Bindings.textile +0 -4
  9. data/docs/Clustering.textile +0 -4
  10. data/docs/ConnectingToTheBroker.textile +1 -5
  11. data/docs/ConnectionEncryptionWithTLS.textile +0 -4
  12. data/docs/DocumentationGuidesIndex.textile +0 -4
  13. data/docs/Durability.textile +0 -4
  14. data/docs/ErrorHandling.textile +40 -106
  15. data/docs/Exchanges.textile +0 -4
  16. data/docs/GettingStarted.textile +6 -10
  17. data/docs/PatternsAndUseCases.textile +1 -4
  18. data/docs/Queues.textile +0 -4
  19. data/docs/RabbitMQVersions.textile +0 -4
  20. data/docs/RunningTests.textile +0 -4
  21. data/docs/TestingWithEventedSpec.textile +0 -4
  22. data/docs/Troubleshooting.textile +0 -4
  23. data/docs/VendorSpecificExtensions.textile +0 -4
  24. data/examples/error_handling/hello_world_producer.rb +1 -1
  25. data/examples/issues/issue_121.rb +23 -0
  26. data/examples/patterns/request_reply/client.rb +2 -1
  27. data/examples/patterns/request_reply/server.rb +1 -0
  28. data/examples/publishing/returned_messages.rb +1 -1
  29. data/lib/amqp.rb +0 -7
  30. data/lib/amqp/channel.rb +15 -33
  31. data/lib/amqp/client.rb +2 -2
  32. data/lib/amqp/compatibility/ruby187_patchlevel_check.rb +4 -4
  33. data/lib/amqp/connection.rb +0 -1
  34. data/lib/amqp/consumer.rb +2 -2
  35. data/lib/amqp/exceptions.rb +1 -10
  36. data/lib/amqp/exchange.rb +5 -5
  37. data/lib/amqp/queue.rb +23 -47
  38. data/lib/amqp/session.rb +4 -4
  39. data/lib/amqp/version.rb +1 -1
  40. data/spec/integration/basic_get_spec.rb +24 -80
  41. data/spec/integration/basic_return_spec.rb +3 -3
  42. data/spec/integration/channel_level_exception_with_multiple_channels_spec.rb +1 -0
  43. data/spec/integration/exchange_declaration_spec.rb +102 -71
  44. data/spec/integration/extensions/rabbitmq/publisher_confirmations_spec.rb +17 -1
  45. data/spec/integration/fanout_exchange_routing_spec.rb +1 -1
  46. data/spec/integration/immediate_messages_spec.rb +59 -0
  47. data/spec/integration/multiple_consumers_per_queue_spec.rb +101 -39
  48. data/spec/integration/queue_redeclaration_with_incompatible_attributes_spec.rb +12 -25
  49. data/spec/integration/regressions/concurrent_publishing_on_the_same_channel_spec.rb +1 -1
  50. data/spec/integration/reply_queue_communication_spec.rb +2 -1
  51. data/spec/integration/store_and_forward_spec.rb +9 -6
  52. data/spec/integration/topic_subscription_spec.rb +4 -5
  53. data/spec/spec_helper.rb +2 -8
  54. data/spec/unit/amqp/connection_spec.rb +1 -3
  55. metadata +112 -116
  56. data/examples/deprecated/default_thread_local_channel_instance.rb +0 -34
  57. data/examples/legacy/ack.rb +0 -70
  58. data/examples/legacy/callbacks.rb +0 -45
  59. data/examples/legacy/clock.rb +0 -74
  60. data/examples/legacy/hashtable.rb +0 -60
  61. data/examples/legacy/logger.rb +0 -92
  62. data/examples/legacy/multiclock.rb +0 -56
  63. data/examples/legacy/pingpong.rb +0 -51
  64. data/examples/legacy/primes-simple.rb +0 -29
  65. data/examples/legacy/primes.rb +0 -74
  66. data/examples/legacy/stocks.rb +0 -59
  67. data/lib/amqp/deprecated/fork.rb +0 -17
  68. data/lib/amqp/deprecated/logger.rb +0 -100
  69. data/lib/amqp/deprecated/mq.rb +0 -22
  70. data/lib/amqp/deprecated/rpc.rb +0 -169
  71. data/lib/amqp/ext/em.rb +0 -3
  72. data/lib/amqp/ext/emfork.rb +0 -72
  73. data/lib/amqp/logger.rb +0 -19
  74. data/lib/amqp/rpc.rb +0 -20
  75. data/lib/mq.rb +0 -35
  76. data/lib/mq/logger.rb +0 -4
  77. data/lib/mq/rpc.rb +0 -4
  78. data/spec/integration/remove_individual_binding_spec.rb +0 -51
@@ -28,9 +28,7 @@ describe AMQP, 'class object' do
28
28
  :logging => false,
29
29
  :ssl => false,
30
30
  :broker => nil,
31
- :frame_max => 131072,
32
- :heartbeat => 0,
33
- :auth_mechanism => "PLAIN"
31
+ :frame_max => 131072
34
32
  }
35
33
  end
36
34
 
metadata CHANGED
@@ -1,101 +1,109 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: amqp
3
- version: !ruby/object:Gem::Version
4
- version: 0.9.10
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 2787483469
5
+ prerelease: 6
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ - pre
11
+ - 1
12
+ version: 1.0.0.pre1
6
13
  platform: ruby
7
- authors:
14
+ authors:
8
15
  - Aman Gupta
9
16
  - Jakub Stastny aka botanicus
10
17
  - Michael S. Klishin
11
- autorequire:
18
+ autorequire:
12
19
  bindir: bin
13
20
  cert_chain: []
14
- date: 2013-03-05 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
21
+
22
+ date: 2012-06-22 00:00:00 Z
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
17
25
  name: eventmachine
18
- version_requirements: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: !binary |-
23
- MA==
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
24
28
  none: false
25
- requirement: !ruby/object:Gem::Requirement
26
- requirements:
29
+ requirements:
27
30
  - - ">="
28
- - !ruby/object:Gem::Version
29
- version: !binary |-
30
- MA==
31
- none: false
32
- prerelease: false
31
+ - !ruby/object:Gem::Version
32
+ hash: 3
33
+ segments:
34
+ - 0
35
+ version: "0"
33
36
  type: :runtime
34
- - !ruby/object:Gem::Dependency
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
35
39
  name: amq-client
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.9.12
41
- none: false
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: 0.9.12
47
- none: false
48
40
  prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ hash: 2787483469
47
+ segments:
48
+ - 1
49
+ - 0
50
+ - 0
51
+ - pre
52
+ - 1
53
+ version: 1.0.0.pre1
49
54
  type: :runtime
50
- - !ruby/object:Gem::Dependency
55
+ version_requirements: *id002
56
+ - !ruby/object:Gem::Dependency
51
57
  name: amq-protocol
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: 1.2.0
57
- none: false
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: 1.2.0
63
- none: false
64
58
  prerelease: false
59
+ requirement: &id003 !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ hash: 2787483469
65
+ segments:
66
+ - 1
67
+ - 0
68
+ - 0
69
+ - pre
70
+ - 1
71
+ version: 1.0.0.pre1
65
72
  type: :runtime
66
- description: Widely used, feature-rich asynchronous AMQP RabbitMQ client with batteries included.
67
- email:
68
- - !binary |-
69
- bWljaGFlbEBub3ZlbWJlcmFpbi5jb20=
70
- - !binary |-
71
- c3Rhc3RueUAxMDFpZGVhcy5jeg==
73
+ version_requirements: *id003
74
+ description: Widely used, feature-rich asynchronous AMQP 0.9.1 client with batteries included.
75
+ email:
76
+ - michael@novemberain.com
77
+ - stastny@101ideas.cz
72
78
  executables: []
79
+
73
80
  extensions: []
74
- extra_rdoc_files:
81
+
82
+ extra_rdoc_files:
75
83
  - README.md
76
- - docs/08Migration.textile
77
- - docs/AMQP091ModelExplained.textile
78
- - docs/Bindings.textile
79
- - docs/Clustering.textile
80
- - docs/ConnectingToTheBroker.textile
81
- - docs/ConnectionEncryptionWithTLS.textile
82
- - docs/DocumentationGuidesIndex.textile
83
84
  - docs/Durability.textile
84
- - docs/ErrorHandling.textile
85
85
  - docs/Exchanges.textile
86
- - docs/GettingStarted.textile
87
86
  - docs/PatternsAndUseCases.textile
88
- - docs/Queues.textile
89
- - docs/RabbitMQVersions.textile
87
+ - docs/ConnectingToTheBroker.textile
88
+ - docs/ConnectionEncryptionWithTLS.textile
90
89
  - docs/RunningTests.textile
91
- - docs/TestingWithEventedSpec.textile
90
+ - docs/DocumentationGuidesIndex.textile
92
91
  - docs/Troubleshooting.textile
92
+ - docs/RabbitMQVersions.textile
93
+ - docs/Queues.textile
94
+ - docs/08Migration.textile
93
95
  - docs/VendorSpecificExtensions.textile
94
- files:
95
- - ".gitignore"
96
- - ".rspec"
97
- - ".travis.yml"
98
- - ".yardopts"
96
+ - docs/AMQP091ModelExplained.textile
97
+ - docs/Bindings.textile
98
+ - docs/GettingStarted.textile
99
+ - docs/ErrorHandling.textile
100
+ - docs/Clustering.textile
101
+ - docs/TestingWithEventedSpec.textile
102
+ files:
103
+ - .gitignore
104
+ - .rspec
105
+ - .travis.yml
106
+ - .yardopts
99
107
  - CHANGELOG
100
108
  - Gemfile
101
109
  - README.md
@@ -140,7 +148,6 @@ files:
140
148
  - examples/channels/qos_aka_prefetch.rb
141
149
  - examples/channels/qos_aka_prefetch_without_callback.rb
142
150
  - examples/connection/connect_and_immediately_disconnect.rb
143
- - examples/deprecated/default_thread_local_channel_instance.rb
144
151
  - examples/error_handling/automatic_recovery_of_channel_and_queues.rb
145
152
  - examples/error_handling/automatically_recovering_hello_world_consumer.rb
146
153
  - examples/error_handling/automatically_recovering_hello_world_consumer_that_uses_a_server_named_queue.rb
@@ -194,21 +201,12 @@ files:
194
201
  - examples/inspecting_server_information.rb
195
202
  - examples/issues/amq_client_issue_7.rb
196
203
  - examples/issues/amq_protocol_issue_14.rb
204
+ - examples/issues/issue_121.rb
197
205
  - examples/issues/issue_75.rb
198
206
  - examples/issues/issue_79.rb
199
207
  - examples/issues/issue_80.rb
200
208
  - examples/issues/issue_93.rb
201
209
  - examples/issues/issue_94.rb
202
- - examples/legacy/ack.rb
203
- - examples/legacy/callbacks.rb
204
- - examples/legacy/clock.rb
205
- - examples/legacy/hashtable.rb
206
- - examples/legacy/logger.rb
207
- - examples/legacy/multiclock.rb
208
- - examples/legacy/pingpong.rb
209
- - examples/legacy/primes-simple.rb
210
- - examples/legacy/primes.rb
211
- - examples/legacy/stocks.rb
212
210
  - examples/patterns/command/consumer.rb
213
211
  - examples/patterns/command/producer.rb
214
212
  - examples/patterns/event/consumer.rb
@@ -265,28 +263,17 @@ files:
265
263
  - lib/amqp/compatibility/ruby187_patchlevel_check.rb
266
264
  - lib/amqp/connection.rb
267
265
  - lib/amqp/consumer.rb
268
- - lib/amqp/deprecated/fork.rb
269
- - lib/amqp/deprecated/logger.rb
270
- - lib/amqp/deprecated/mq.rb
271
- - lib/amqp/deprecated/rpc.rb
272
266
  - lib/amqp/exceptions.rb
273
267
  - lib/amqp/exchange.rb
274
- - lib/amqp/ext/em.rb
275
- - lib/amqp/ext/emfork.rb
276
268
  - lib/amqp/extensions/rabbitmq.rb
277
269
  - lib/amqp/header.rb
278
270
  - lib/amqp/int_allocator.rb
279
271
  - lib/amqp/integration/rails.rb
280
- - lib/amqp/logger.rb
281
272
  - lib/amqp/queue.rb
282
- - lib/amqp/rpc.rb
283
273
  - lib/amqp/session.rb
284
274
  - lib/amqp/utilities/event_loop_helper.rb
285
275
  - lib/amqp/utilities/server_type.rb
286
276
  - lib/amqp/version.rb
287
- - lib/mq.rb
288
- - lib/mq/logger.rb
289
- - lib/mq/rpc.rb
290
277
  - spec/integration/authentication_spec.rb
291
278
  - spec/integration/automatic_binding_for_default_direct_exchange_spec.rb
292
279
  - spec/integration/automatic_recovery_predicate_spec.rb
@@ -304,6 +291,7 @@ files:
304
291
  - spec/integration/fanout_exchange_routing_spec.rb
305
292
  - spec/integration/headers_exchange_routing_spec.rb
306
293
  - spec/integration/hello_world_spec.rb
294
+ - spec/integration/immediate_messages_spec.rb
307
295
  - spec/integration/mandatory_messages_spec.rb
308
296
  - spec/integration/message_acknowledgement_spec.rb
309
297
  - spec/integration/message_metadata_access_spec.rb
@@ -319,7 +307,6 @@ files:
319
307
  - spec/integration/regressions/concurrent_publishing_on_the_same_channel_spec.rb
320
308
  - spec/integration/regressions/empty_message_body_spec.rb
321
309
  - spec/integration/regressions/issue66_spec.rb
322
- - spec/integration/remove_individual_binding_spec.rb
323
310
  - spec/integration/reply_queue_communication_spec.rb
324
311
  - spec/integration/store_and_forward_spec.rb
325
312
  - spec/integration/stress/publishing_of_messages_with_incrementing_sizes_spec.rb
@@ -332,32 +319,41 @@ files:
332
319
  - spec/unit/amqp/client_spec.rb
333
320
  - spec/unit/amqp/connection_spec.rb
334
321
  - spec/unit/amqp/int_allocator_spec.rb
335
- homepage: http://rubyamqp.info
336
- licenses: []
337
- post_install_message:
338
- rdoc_options:
339
- - "--include=examples --main README.md"
340
- require_paths:
322
+ homepage: http://github.com/ruby-amqp/amqp
323
+ licenses:
324
+ - Ruby
325
+ post_install_message: "[\e[32mVersion 1.0.0\e[0m] [API] All public API bits deprecated in 0.8.0 are COMPLETELY REMOVED\n"
326
+ rdoc_options:
327
+ - --include=examples --main README.md
328
+ require_paths:
341
329
  - lib
342
- required_ruby_version: !ruby/object:Gem::Requirement
343
- requirements:
344
- - - ">="
345
- - !ruby/object:Gem::Version
346
- version: !binary |-
347
- MA==
330
+ required_ruby_version: !ruby/object:Gem::Requirement
348
331
  none: false
349
- required_rubygems_version: !ruby/object:Gem::Requirement
350
- requirements:
332
+ requirements:
351
333
  - - ">="
352
- - !ruby/object:Gem::Version
353
- version: !binary |-
354
- MA==
334
+ - !ruby/object:Gem::Version
335
+ hash: 3
336
+ segments:
337
+ - 0
338
+ version: "0"
339
+ required_rubygems_version: !ruby/object:Gem::Requirement
355
340
  none: false
341
+ requirements:
342
+ - - ">"
343
+ - !ruby/object:Gem::Version
344
+ hash: 25
345
+ segments:
346
+ - 1
347
+ - 3
348
+ - 1
349
+ version: 1.3.1
356
350
  requirements: []
351
+
357
352
  rubyforge_project: amqp
358
- rubygems_version: 1.8.24
359
- signing_key:
353
+ rubygems_version: 1.8.15
354
+ signing_key:
360
355
  specification_version: 3
361
- summary: Widely used, feature-rich asynchronous RabbitMQ client with batteries included
356
+ summary: Widely used, feature-rich asynchronous AMQP 0.9.1 client with batteries included
362
357
  test_files: []
363
- has_rdoc:
358
+
359
+ has_rdoc:
@@ -1,34 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
3
-
4
- require "bundler"
5
- Bundler.setup
6
-
7
- $:.unshift(File.expand_path("../../../lib", __FILE__))
8
-
9
- require 'amqp'
10
-
11
- # CODE BELOW IS USING DEPRECATED METHODS. PLEASE CONSIDER NOT USING THEM IF YOU CAN.
12
- #
13
- # The reason why these methods work at all is to make 0.6.x => 0.8.x migration easier so
14
- # people won't be stuck with AMQP (the protocol) 0.8 forever and can benefit from more
15
- # advanced AMQP 0.9.1 features.
16
- #
17
-
18
- EventMachine.run do
19
- connection = AMQP.connect(:host => '127.0.0.1')
20
- puts "Connected to AMQP broker. Running #{AMQP::VERSION} version of the gem..."
21
-
22
- queue = AMQP::Channel.queue("amqpgem.examples.hello_world", :auto_delete => true)
23
- exchange = MQ.direct("")
24
-
25
- queue.subscribe do |payload|
26
- puts "Received a message: #{payload}. Disconnecting..."
27
-
28
- connection.close {
29
- EM.stop { exit }
30
- }
31
- end
32
-
33
- exchange.publish "Hello, world!", :routing_key => queue.name
34
- end
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
3
-
4
- require "bundler"
5
- Bundler.setup
6
-
7
- $:.unshift(File.expand_path("../../../lib", __FILE__))
8
- require 'amqp'
9
-
10
-
11
- AMQP.start do |connection|
12
- puts "Connected!"
13
- channel = AMQP::Channel.new(connection)
14
- e = channel.fanout("amqp-gem.examples.ack")
15
- q = channel.queue('amqp-gem.examples.q1').bind(e) { puts "Bound #{e.name} to the queue" }
16
-
17
- q.status do |message_count, consumer_count|
18
- puts "Queue #{q.name} has #{message_count} messages and #{consumer_count} consumers"
19
- end
20
-
21
- i = 0
22
-
23
- # Stopping after the second item was acked will keep the 3rd item in the queue
24
- q.subscribe(:ack => true) do |h, m|
25
- puts "Got a message"
26
-
27
- if AMQP.closing?
28
- puts "#{m} (ignored, redelivered later)"
29
- else
30
- puts m
31
- h.ack
32
- end
33
- end # channel.queue
34
-
35
-
36
- 10.times do |i|
37
- puts "Publishing message ##{i}"
38
- e.publish("Totally rad #{i}")
39
- end
40
-
41
-
42
- show_stopper = Proc.new {
43
- q.status do |message_count, consumer_count|
44
- puts "Queue #{q.name} has #{message_count} messages and #{consumer_count} consumers"
45
- end
46
-
47
- q.unbind(e) do
48
- puts "Unbound #{q.name} from #{e.name}"
49
-
50
- e.delete do
51
- puts "Just deleted #{e.name}"
52
- end
53
-
54
- q.delete do
55
- puts "Just deleted #{q.name}"
56
- AMQP.stop do
57
- puts "About to stop EM reactor"
58
- EM.stop
59
- end
60
- end
61
- end
62
- }
63
-
64
- EM.add_timer(3, show_stopper)
65
-
66
- # For ack to work appropriately you must shutdown AMQP gracefully,
67
- # otherwise all items in your queue will be returned
68
- Signal.trap('INT', show_stopper)
69
- Signal.trap('TERM', show_stopper)
70
- end # AMQP.start
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
3
-
4
- require "bundler"
5
- Bundler.setup
6
-
7
- $:.unshift File.expand_path("../../lib", __FILE__)
8
- require "amqp"
9
-
10
- AMQP.start(:host => "localhost") do |connection|
11
-
12
- # Send Connection.Close on Ctrl+C
13
- trap(:INT) do
14
- unless connection.closing?
15
- connection.close { exit! }
16
- end
17
- end
18
-
19
- @counter = 0
20
- amq = AMQP::Channel.new
21
-
22
- amq.prefetch(64, false) do
23
- puts "basic.qos callback has fired"
24
- end
25
-
26
- amq.recover do
27
- puts "basic.recover callback has fired"
28
- end
29
-
30
- 10.times do
31
- amq.queue("") do |queue|
32
- puts "Queue #{queue.name} is now declared."
33
- puts "All queues: #{amq.queues.map { |q| q.name }.join(', ')}"
34
-
35
- @counter += 1
36
- end
37
- end
38
-
39
- EM.add_timer(0.3) do
40
- connection.disconnect do
41
- puts "AMQP connection is now closed."
42
- EM.stop
43
- end
44
- end
45
- end