message-driver 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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