message-driver 0.3.0 → 0.4.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +18 -0
  3. data/.rubocop_todo.yml +160 -0
  4. data/.travis.yml +5 -4
  5. data/CHANGELOG.md +5 -0
  6. data/Gemfile +9 -8
  7. data/Guardfile +14 -7
  8. data/README.md +2 -0
  9. data/Rakefile +16 -10
  10. data/examples/basic_producer_and_consumer/Gemfile +2 -2
  11. data/examples/basic_producer_and_consumer/common.rb +3 -3
  12. data/examples/basic_producer_and_consumer/consumer.rb +5 -5
  13. data/examples/basic_producer_and_consumer/producer.rb +7 -7
  14. data/features/CHANGELOG.md +5 -0
  15. data/features/message_consumers/transactional_ack_consumers.feature +1 -0
  16. data/features/rabbitmq_specific_features/publisher_acknowledgements.feature +51 -0
  17. data/features/step_definitions/error_handling_steps.rb +2 -2
  18. data/features/step_definitions/logging_steps.rb +4 -4
  19. data/features/step_definitions/message_consumers_steps.rb +8 -8
  20. data/features/step_definitions/rabbitmq_specific_steps.rb +10 -0
  21. data/features/step_definitions/steps.rb +15 -15
  22. data/features/support/env.rb +3 -0
  23. data/features/support/firewall_helper.rb +5 -6
  24. data/features/support/message_table_matcher.rb +3 -4
  25. data/features/support/no_error_matcher.rb +3 -3
  26. data/features/support/test_runner.rb +11 -3
  27. data/features/support/transforms.rb +1 -1
  28. data/lib/message-driver.rb +1 -1
  29. data/lib/message_driver.rb +0 -1
  30. data/lib/message_driver/adapters/base.rb +10 -10
  31. data/lib/message_driver/adapters/bunny_adapter.rb +57 -30
  32. data/lib/message_driver/adapters/in_memory_adapter.rb +4 -5
  33. data/lib/message_driver/adapters/stomp_adapter.rb +4 -6
  34. data/lib/message_driver/broker.rb +5 -4
  35. data/lib/message_driver/client.rb +6 -6
  36. data/lib/message_driver/destination.rb +2 -2
  37. data/lib/message_driver/errors.rb +1 -4
  38. data/lib/message_driver/logging.rb +1 -1
  39. data/lib/message_driver/message.rb +2 -2
  40. data/lib/message_driver/subscription.rb +1 -1
  41. data/lib/message_driver/version.rb +1 -1
  42. data/lib/{message_driver/vendor → vendor}/.document +0 -0
  43. data/lib/vendor/nesty.rb +1 -0
  44. data/lib/vendor/nesty/nested_error.rb +28 -0
  45. data/message-driver.gemspec +15 -14
  46. data/spec/integration/bunny/amqp_integration_spec.rb +43 -43
  47. data/spec/integration/bunny/bunny_adapter_spec.rb +117 -101
  48. data/spec/integration/in_memory/in_memory_adapter_spec.rb +35 -35
  49. data/spec/integration/stomp/stomp_adapter_spec.rb +42 -42
  50. data/spec/spec_helper.rb +4 -1
  51. data/spec/support/shared/adapter_examples.rb +7 -7
  52. data/spec/support/shared/client_ack_examples.rb +6 -6
  53. data/spec/support/shared/context_examples.rb +4 -4
  54. data/spec/support/shared/destination_examples.rb +10 -10
  55. data/spec/support/shared/subscription_examples.rb +29 -29
  56. data/spec/support/shared/transaction_examples.rb +10 -10
  57. data/spec/units/message_driver/adapters/base_spec.rb +19 -19
  58. data/spec/units/message_driver/broker_spec.rb +57 -58
  59. data/spec/units/message_driver/client_spec.rb +84 -84
  60. data/spec/units/message_driver/destination_spec.rb +4 -4
  61. data/spec/units/message_driver/message_spec.rb +19 -19
  62. data/spec/units/message_driver/subscription_spec.rb +4 -4
  63. data/test_lib/broker_config.rb +2 -2
  64. metadata +27 -6
  65. data/lib/message_driver/vendor/nesty.rb +0 -1
  66. data/lib/message_driver/vendor/nesty/nested_error.rb +0 -26
@@ -4,14 +4,14 @@ module MessageDriver::Destination
4
4
  describe Base do
5
5
  subject(:destination) { Base.new(nil, nil, nil, nil) }
6
6
 
7
- it "needs some real tests"
7
+ it 'needs some real tests'
8
8
 
9
9
  include_examples "doesn't support #message_count"
10
10
 
11
- describe "#subscribe" do
12
- it "raises an error" do
11
+ describe '#subscribe' do
12
+ it 'raises an error' do
13
13
  expect {
14
- consumer = lambda do |m| end
14
+ consumer = lambda do |_| end
15
15
  destination.subscribe(&consumer)
16
16
  }.to raise_error "#subscribe is not supported by #{destination.class}"
17
17
  end
@@ -2,13 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  module MessageDriver::Message
4
4
  describe Base do
5
- describe "#initialize" do
6
- let(:body) { "The message body" }
5
+ describe '#initialize' do
6
+ let(:body) { 'The message body' }
7
7
  let(:headers) { { foo: :bar, bar: :baz} }
8
8
  let(:properties) { {persistent: true, client_ack: true} }
9
- let(:ctx) { double("adapter_context") }
9
+ let(:ctx) { double('adapter_context') }
10
10
 
11
- context "sets the body, header and properites on initialization" do
11
+ context 'sets the body, header and properites on initialization' do
12
12
  subject { described_class.new(ctx, body, headers, properties) }
13
13
 
14
14
  its(:ctx) { should be(ctx) }
@@ -19,23 +19,23 @@ module MessageDriver::Message
19
19
  end
20
20
 
21
21
  let(:logger) { MessageDriver.logger }
22
- let(:ctx) { double("adapter_context") }
23
- let(:options) { double("options") }
24
- subject(:message) { described_class.new(ctx, "body", {}, {}) }
22
+ let(:ctx) { double('adapter_context') }
23
+ let(:options) { double('options') }
24
+ subject(:message) { described_class.new(ctx, 'body', {}, {}) }
25
25
 
26
- describe "#ack" do
26
+ describe '#ack' do
27
27
  before do
28
28
  allow(ctx).to receive(:ack_message)
29
29
  end
30
- context "when the adapter supports client acks" do
30
+ context 'when the adapter supports client acks' do
31
31
  before do
32
32
  allow(ctx).to receive(:supports_client_acks?) { true }
33
33
  end
34
- it "calls #ack_message with the message" do
34
+ it 'calls #ack_message with the message' do
35
35
  subject.ack
36
36
  expect(ctx).to have_received(:ack_message).with(subject, {})
37
37
  end
38
- it "passes the supplied options to ack_message" do
38
+ it 'passes the supplied options to ack_message' do
39
39
  subject.ack(options)
40
40
  expect(ctx).to have_received(:ack_message).with(subject, options)
41
41
  end
@@ -48,27 +48,27 @@ module MessageDriver::Message
48
48
  subject.ack
49
49
  expect(ctx).not_to have_received(:ack_message)
50
50
  end
51
- it "logs a warning" do
51
+ it 'logs a warning' do
52
52
  allow(logger).to receive(:debug)
53
53
  subject.ack
54
- expect(logger).to have_received(:debug).with("this adapter does not support client acks")
54
+ expect(logger).to have_received(:debug).with('this adapter does not support client acks')
55
55
  end
56
56
  end
57
57
  end
58
58
 
59
- describe "#nack" do
59
+ describe '#nack' do
60
60
  before do
61
61
  allow(ctx).to receive(:nack_message)
62
62
  end
63
- context "when the adapter supports client nacks" do
63
+ context 'when the adapter supports client nacks' do
64
64
  before do
65
65
  allow(ctx).to receive(:supports_client_acks?) { true }
66
66
  end
67
- it "calls #nack_message with the message" do
67
+ it 'calls #nack_message with the message' do
68
68
  subject.nack
69
69
  expect(ctx).to have_received(:nack_message).with(subject, {})
70
70
  end
71
- it "passes the supplied options to nack_message" do
71
+ it 'passes the supplied options to nack_message' do
72
72
  subject.nack(options)
73
73
  expect(ctx).to have_received(:nack_message).with(subject, options)
74
74
  end
@@ -81,10 +81,10 @@ module MessageDriver::Message
81
81
  subject.nack
82
82
  expect(ctx).not_to have_received(:nack_message)
83
83
  end
84
- it "logs a warning" do
84
+ it 'logs a warning' do
85
85
  allow(logger).to receive(:debug)
86
86
  subject.nack
87
- expect(logger).to have_received(:debug).with("this adapter does not support client acks")
87
+ expect(logger).to have_received(:debug).with('this adapter does not support client acks')
88
88
  end
89
89
  end
90
90
  end
@@ -4,7 +4,7 @@ module MessageDriver::Subscription
4
4
  describe Base do
5
5
  let(:adapter) { double(MessageDriver::Adapters::Base) }
6
6
  let(:destination) { double(MessageDriver::Destination::Base) }
7
- let(:consumer) { double("a consumer") }
7
+ let(:consumer) { double('a consumer') }
8
8
  subject(:subscription) { Base.new(adapter, destination, consumer) }
9
9
 
10
10
  it "sets it's adapter, destination and consumer on instansiation" do
@@ -13,11 +13,11 @@ module MessageDriver::Subscription
13
13
  expect(subscription.consumer).to eq(consumer)
14
14
  end
15
15
 
16
- describe "#unsubscribe" do
17
- it "raises an error" do
16
+ describe '#unsubscribe' do
17
+ it 'raises an error' do
18
18
  expect {
19
19
  subscription.unsubscribe
20
- }.to raise_error("must be implemented in subclass")
20
+ }.to raise_error('must be implemented in subclass')
21
21
  end
22
22
  end
23
23
  end
@@ -1,8 +1,8 @@
1
1
  class BrokerConfig
2
2
  class << self
3
3
  def config
4
- adapter_file = File.expand_path("../../.adapter_under_test", __FILE__)
5
- @adapter, @version = (ENV['ADAPTER'] || (File.exist?(adapter_file) && File.read(adapter_file).chomp)).split(":")
4
+ adapter_file = File.expand_path('../../.adapter_under_test', __FILE__)
5
+ @adapter, @version = (ENV['ADAPTER'] || (File.exist?(adapter_file) ? File.read(adapter_file).chomp : '')).split(':')
6
6
  case @adapter
7
7
  when 'bunny'
8
8
  {
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.3.0
4
+ version: 0.4.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: 2014-02-26 00:00:00.000000000 Z
11
+ date: 2014-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Easy message queues for ruby using AMQ, STOMP and others
70
84
  email:
71
85
  - message-driver@soupmatt.com
@@ -76,6 +90,8 @@ files:
76
90
  - ".gitignore"
77
91
  - ".relish"
78
92
  - ".rspec"
93
+ - ".rubocop.yml"
94
+ - ".rubocop_todo.yml"
79
95
  - ".travis.yml"
80
96
  - CHANGELOG.md
81
97
  - Gemfile
@@ -115,10 +131,12 @@ files:
115
131
  - features/publishing_a_message.feature
116
132
  - features/publishing_with_transactions.feature
117
133
  - features/rabbitmq_specific_features/dead_letter_queueing.feature
134
+ - features/rabbitmq_specific_features/publisher_acknowledgements.feature
118
135
  - features/step_definitions/dynamic_destinations_steps.rb
119
136
  - features/step_definitions/error_handling_steps.rb
120
137
  - features/step_definitions/logging_steps.rb
121
138
  - features/step_definitions/message_consumers_steps.rb
139
+ - features/step_definitions/rabbitmq_specific_steps.rb
122
140
  - features/step_definitions/steps.rb
123
141
  - features/support/broker_config_helper.rb
124
142
  - features/support/env.rb
@@ -140,10 +158,10 @@ files:
140
158
  - lib/message_driver/logging.rb
141
159
  - lib/message_driver/message.rb
142
160
  - lib/message_driver/subscription.rb
143
- - lib/message_driver/vendor/.document
144
- - lib/message_driver/vendor/nesty.rb
145
- - lib/message_driver/vendor/nesty/nested_error.rb
146
161
  - lib/message_driver/version.rb
162
+ - lib/vendor/.document
163
+ - lib/vendor/nesty.rb
164
+ - lib/vendor/nesty/nested_error.rb
147
165
  - message-driver.gemspec
148
166
  - spec/integration/bunny/amqp_integration_spec.rb
149
167
  - spec/integration/bunny/bunny_adapter_spec.rb
@@ -184,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
202
  version: '0'
185
203
  requirements: []
186
204
  rubyforge_project:
187
- rubygems_version: 2.2.0
205
+ rubygems_version: 2.2.2
188
206
  signing_key:
189
207
  specification_version: 4
190
208
  summary: Easy message queues for ruby
@@ -215,10 +233,12 @@ test_files:
215
233
  - features/publishing_a_message.feature
216
234
  - features/publishing_with_transactions.feature
217
235
  - features/rabbitmq_specific_features/dead_letter_queueing.feature
236
+ - features/rabbitmq_specific_features/publisher_acknowledgements.feature
218
237
  - features/step_definitions/dynamic_destinations_steps.rb
219
238
  - features/step_definitions/error_handling_steps.rb
220
239
  - features/step_definitions/logging_steps.rb
221
240
  - features/step_definitions/message_consumers_steps.rb
241
+ - features/step_definitions/rabbitmq_specific_steps.rb
222
242
  - features/step_definitions/steps.rb
223
243
  - features/support/broker_config_helper.rb
224
244
  - features/support/env.rb
@@ -245,3 +265,4 @@ test_files:
245
265
  - spec/units/message_driver/destination_spec.rb
246
266
  - spec/units/message_driver/message_spec.rb
247
267
  - spec/units/message_driver/subscription_spec.rb
268
+ has_rdoc:
@@ -1 +0,0 @@
1
- require "nesty/nested_error"
@@ -1,26 +0,0 @@
1
- module Nesty
2
- module NestedError
3
- attr_reader :nested, :raw_backtrace
4
-
5
- def initialize(msg = nil, nested)
6
- super(msg)
7
- @nested = nested
8
- end
9
-
10
- def set_backtrace(backtrace)
11
- @raw_backtrace = backtrace
12
- if nested
13
- backtrace = backtrace - nested_raw_backtrace
14
- backtrace += ["#{nested.backtrace.first}: #{nested.message} (#{nested.class.name})"]
15
- backtrace += nested.backtrace[1..-1] || []
16
- end
17
- super(backtrace)
18
- end
19
-
20
- private
21
-
22
- def nested_raw_backtrace
23
- nested.respond_to?(:raw_backtrace) ? nested.raw_backtrace : nested.backtrace
24
- end
25
- end
26
- end