message-driver 0.2.0.rc2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f170e7f772832db44e2182d0ec0e9b57a3d7c35d
4
- data.tar.gz: 932d64d463e45ccd9a5729aec220b334ccc304e6
3
+ metadata.gz: 6e9f0a7a7dd768f5bf8af2020720c7bf6a5f550d
4
+ data.tar.gz: daafbfc5b67b2eb79c562e490dbc4516ac8bb8e0
5
5
  SHA512:
6
- metadata.gz: 8cf33a6bc250b26d594be85bc3ca6d78d0e9d365d3235f546d930a2fb9d9a046be02a2870a022d5ee33c57fcdcdbe57f2b605e1ec578e5028236f3dd0c512205
7
- data.tar.gz: 836edced5bb12c61b080a475d67adfe0dc643114d83399996e4e0498984483e9b207d10dba41251ed473444abc1c547ffd38fe767fb7b534aa4099b63fa170a0
6
+ metadata.gz: e788da60c674485779dc4a910cc6e88a8a7e8bcbbe2d53c63b63b150d56ea4a91eea7c673dbe4e80fa6dd3532a773d054b05fceacc6c8ae46b3c6737f1b09ec8
7
+ data.tar.gz: 5694fa3975c55b9e610e8028f2e61402e6925402210188d78c5a02e41120365fc42de2567a7c89e21f88134ab6609f7174ac96cc23ecbb06ed3bc8c9191c30e0
data/.travis.yml CHANGED
@@ -9,10 +9,9 @@ before_script:
9
9
  - sudo service rabbitmq-server restart
10
10
  env:
11
11
  - ADAPTER=in_memory
12
- - ADAPTER=bunny:0.9.0
13
12
  - ADAPTER=bunny:0.10.0
14
13
  - ADAPTER=stomp
15
- - ADAPTER=bunny:1.0.0.rc
14
+ - ADAPTER=bunny:1.0.0
16
15
  rvm:
17
16
  - 2.0.0
18
17
  - 1.9.3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0 - 2013-11-05
4
+
5
+ * drop support for bunny 0.9.x
6
+ * add support for bunny 1.0.x
7
+ * ability to create subscriptions from a block instead of having to
8
+ register a consumer
9
+
3
10
  ## 0.2.0.rc2 - 2013-10-30
4
11
 
5
12
  * Features
data/Guardfile CHANGED
@@ -9,8 +9,8 @@ guard 'bundler' do
9
9
  end
10
10
 
11
11
  common_rspec_opts = {keep_failed: true, all_after_pass: true}
12
- unit_spec_opts = common_rspec_opts.merge({spec_paths: ["spec/units"], cli: '-f doc', run_all: {cli: ''}})
13
- integration_spec_opts = common_rspec_opts.merge({spec_paths: ["spec/integration/#{BrokerConfig.current_adapter}"], cli: '-f doc -t all_adapters', run_all: {cli: '-t all_adapters'}})
12
+ unit_spec_opts = common_rspec_opts.merge({spec_paths: ["spec/units"], cmd: 'rspec -f doc', run_all: {cmd: 'rspec'}})
13
+ integration_spec_opts = common_rspec_opts.merge({spec_paths: ["spec/integration/#{BrokerConfig.current_adapter}"], cmd: 'rspec -f doc -t all_adapters', run_all: {cmd: 'rspec -t all_adapters'}})
14
14
 
15
15
  group 'specs' do
16
16
  guard 'rspec', unit_spec_opts do
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0 - 2013-11-05
4
+
5
+ * drop support for bunny 0.9.x
6
+ * add support for bunny 1.0.x
7
+ * ability to create subscriptions from a block instead of having to
8
+ register a consumer
9
+
3
10
  ## 0.2.0.rc2 - 2013-10-30
4
11
 
5
12
  * Features
@@ -0,0 +1,50 @@
1
+ @in_memory
2
+ @bunny
3
+ Feature: Subscribing a Consumer with a block
4
+ Background:
5
+ Given I am connected to the broker
6
+ And I have a destination :dest_queue with no messages on it
7
+ And I have a destination :source_queue with no messages on it
8
+ And I create a subscription
9
+ """ruby
10
+ MessageDriver::Client.subscribe_with(:source_queue) do |message|
11
+ MessageDriver::Client.publish(:dest_queue, message.body)
12
+ end
13
+ """
14
+
15
+
16
+ Scenario: Consuming Messages
17
+ When I send the following messages to :source_queue
18
+ | body |
19
+ | Test Message 1 |
20
+ | Test Message 2 |
21
+ And I let the subscription process
22
+
23
+ Then I expect to find no messages on :source_queue
24
+ And I expect to find the following 2 messages on :dest_queue
25
+ | body |
26
+ | Test Message 1 |
27
+ | Test Message 2 |
28
+
29
+
30
+ Scenario: Ending a subscription
31
+ When I send the following messages to :source_queue
32
+ | body |
33
+ | Test Message 1 |
34
+ | Test Message 2 |
35
+ And I allow for processing
36
+ And I cancel the subscription
37
+ And I send the following messages to :source_queue
38
+ | body |
39
+ | Test Message 3 |
40
+ | Test Message 4 |
41
+
42
+ Then I expect to find the following 2 messages on :dest_queue
43
+ | body |
44
+ | Test Message 1 |
45
+ | Test Message 2 |
46
+
47
+ And I expect to find the following 2 messages on :source_queue
48
+ | body |
49
+ | Test Message 3 |
50
+ | Test Message 4 |
@@ -399,10 +399,10 @@ module MessageDriver
399
399
  private
400
400
 
401
401
  def validate_bunny_version
402
- required = Gem::Requirement.create('>= 0.9.3')
402
+ required = Gem::Requirement.create('>= 0.10.8')
403
403
  current = Gem::Version.create(Bunny::VERSION)
404
404
  unless required.satisfied_by? current
405
- raise MessageDriver::Error, "bunny 0.9.3 or later is required for the bunny adapter"
405
+ raise MessageDriver::Error, "bunny 0.10.8 or later is required for the bunny adapter"
406
406
  end
407
407
  end
408
408
  end
@@ -16,8 +16,12 @@ module MessageDriver
16
16
  end
17
17
 
18
18
  def subscribe(destination_name, consumer_name, options={})
19
- destination = find_destination(destination_name)
20
19
  consumer = find_consumer(consumer_name)
20
+ subscribe_with(destination_name, options, &consumer)
21
+ end
22
+
23
+ def subscribe_with(destination_name, options={}, &consumer)
24
+ destination = find_destination(destination_name)
21
25
  current_adapter_context.subscribe(destination, options, &consumer)
22
26
  end
23
27
 
@@ -1,5 +1,5 @@
1
1
  module Message
2
2
  module Driver
3
- VERSION = "0.2.0.rc2"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -14,7 +14,7 @@ module MessageDriver::Adapters
14
14
  stub_const("Bunny::VERSION", version)
15
15
  expect {
16
16
  described_class.new(valid_connection_attrs)
17
- }.to raise_error MessageDriver::Error, "bunny 0.9.3 or later is required for the bunny adapter"
17
+ }.to raise_error MessageDriver::Error, "bunny 0.10.8 or later is required for the bunny adapter"
18
18
  end
19
19
  end
20
20
  shared_examples "doesn't raise an error" do
@@ -26,13 +26,13 @@ module MessageDriver::Adapters
26
26
  }.to_not raise_error
27
27
  end
28
28
  end
29
- %w(0.8.0 0.9.0.pre11 0.9.0.rc1 0.9.0 0.9.2).each do |v|
29
+ %w(0.8.0 0.9.0.pre11 0.9.0.rc1 0.9.0 0.9.2 0.9.8 0.10.7).each do |v|
30
30
  context "bunny version #{v}" do
31
31
  let(:version) { v }
32
32
  include_examples "raises an error"
33
33
  end
34
34
  end
35
- %w(0.9.3 0.9.4 0.10.0 1.0.0.pre1).each do |v|
35
+ %w(0.10.8 1.0.0 1.0.3).each do |v|
36
36
  context "bunny version #{v}" do
37
37
  let(:version) { v }
38
38
  include_examples "doesn't raise an error"
@@ -359,6 +359,47 @@ module MessageDriver
359
359
  end
360
360
  end
361
361
  end
362
+
363
+ describe "#subscribe_with" do
364
+ let(:destination) { Broker.destination(:my_queue, "my_queue", exclusive: true) }
365
+ let(:consumer_double) { lambda do |m| end }
366
+
367
+ before do
368
+ adapter_context.stub(:subscribe)
369
+ end
370
+
371
+ it "delegates to the adapter_context" do
372
+ adapter_context.should_receive(:subscribe).with(destination, {}) do |&blk|
373
+ expect(blk).to be(consumer_double)
374
+ end
375
+ subject.subscribe_with(destination, &consumer_double)
376
+ end
377
+
378
+ it "passes the options through" do
379
+ options = {foo: :bar}
380
+ adapter_context.should_receive(:subscribe).with(destination, options) do |&blk|
381
+ expect(blk).to be(consumer_double)
382
+ end
383
+ subject.subscribe_with(destination, options, &consumer_double)
384
+ end
385
+
386
+ it "looks up the destination" do
387
+ adapter_context.should_receive(:subscribe).with(destination, {}) do |&blk|
388
+ expect(blk).to be(consumer_double)
389
+ end
390
+ subject.subscribe_with(:my_queue, &consumer_double)
391
+ end
392
+
393
+ context "when the destination can't be found" do
394
+ let(:bad_dest_name) { :not_a_queue }
395
+ it "raises a MessageDriver:NoSuchDestinationError" do
396
+ expect {
397
+ subject.subscribe_with(bad_dest_name, &consumer_double)
398
+ }.to raise_error(MessageDriver::NoSuchDestinationError, /#{bad_dest_name}/)
399
+ adapter_context.should_not have_received(:subscribe)
400
+ end
401
+ end
402
+ end
362
403
  end
363
404
  end
364
405
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: message-driver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.rc2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Campbell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-30 00:00:00.000000000 Z
11
+ date: 2013-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -107,6 +107,7 @@ files:
107
107
  - features/message_consumers/auto_ack_consumers.feature
108
108
  - features/message_consumers/manual_ack_consumers.feature
109
109
  - features/message_consumers/prefetch_size.feature
110
+ - features/message_consumers/subscribe_with_a_block.feature
110
111
  - features/message_consumers/transactional_ack_consumers.feature
111
112
  - features/publishing_a_message.feature
112
113
  - features/publishing_with_transactions.feature
@@ -176,9 +177,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
177
  version: 1.9.2
177
178
  required_rubygems_version: !ruby/object:Gem::Requirement
178
179
  requirements:
179
- - - '>'
180
+ - - '>='
180
181
  - !ruby/object:Gem::Version
181
- version: 1.3.1
182
+ version: '0'
182
183
  requirements: []
183
184
  rubyforge_project:
184
185
  rubygems_version: 2.0.3
@@ -206,6 +207,7 @@ test_files:
206
207
  - features/message_consumers/auto_ack_consumers.feature
207
208
  - features/message_consumers/manual_ack_consumers.feature
208
209
  - features/message_consumers/prefetch_size.feature
210
+ - features/message_consumers/subscribe_with_a_block.feature
209
211
  - features/message_consumers/transactional_ack_consumers.feature
210
212
  - features/publishing_a_message.feature
211
213
  - features/publishing_with_transactions.feature