basquiat 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.metrics +5 -0
  4. data/.reek +3 -0
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +2 -1
  7. data/.ruby-version +1 -1
  8. data/Guardfile +5 -4
  9. data/README.md +10 -8
  10. data/basquiat.gemspec +10 -8
  11. data/basquiat_docker.sh +35 -0
  12. data/docker-compose.yml +5 -1
  13. data/docker/Dockerfile +2 -3
  14. data/docker/guard_start.sh +3 -0
  15. data/lib/basquiat.rb +5 -0
  16. data/lib/basquiat/adapters/base_adapter.rb +21 -11
  17. data/lib/basquiat/adapters/base_message.rb +29 -0
  18. data/lib/basquiat/adapters/rabbitmq/configuration.rb +52 -0
  19. data/lib/basquiat/adapters/rabbitmq/connection.rb +89 -0
  20. data/lib/basquiat/adapters/rabbitmq/events.rb +49 -0
  21. data/lib/basquiat/adapters/rabbitmq/message.rb +33 -0
  22. data/lib/basquiat/adapters/rabbitmq/requeue_strategies.rb +3 -0
  23. data/lib/basquiat/adapters/rabbitmq/requeue_strategies/base_strategy.rb +33 -0
  24. data/lib/basquiat/adapters/rabbitmq/requeue_strategies/basic_acknowledge.rb +12 -0
  25. data/lib/basquiat/adapters/rabbitmq/requeue_strategies/dead_lettering.rb +58 -0
  26. data/lib/basquiat/adapters/rabbitmq/requeue_strategies/delayed_delivery.rb +27 -0
  27. data/lib/basquiat/adapters/rabbitmq/session.rb +47 -0
  28. data/lib/basquiat/adapters/rabbitmq_adapter.rb +39 -95
  29. data/lib/basquiat/adapters/test_adapter.rb +4 -3
  30. data/lib/basquiat/errors.rb +2 -0
  31. data/lib/basquiat/errors/strategy_not_registered.rb +14 -0
  32. data/lib/basquiat/errors/subclass_responsibility.rb +9 -0
  33. data/lib/basquiat/interfaces/base.rb +0 -1
  34. data/lib/basquiat/support/configuration.rb +4 -4
  35. data/lib/basquiat/support/hash_refinements.rb +2 -1
  36. data/lib/basquiat/version.rb +1 -1
  37. data/spec/lib/adapters/base_adapter_spec.rb +24 -6
  38. data/spec/lib/adapters/base_message_spec.rb +16 -0
  39. data/spec/lib/adapters/rabbitmq/configuration_spec.rb +47 -0
  40. data/spec/lib/adapters/rabbitmq/connection_spec.rb +45 -0
  41. data/spec/lib/adapters/rabbitmq/events_spec.rb +78 -0
  42. data/spec/lib/adapters/rabbitmq/message_spec.rb +26 -0
  43. data/spec/lib/adapters/rabbitmq/requeue_strategies/basic_acknowledge_spec.rb +38 -0
  44. data/spec/lib/adapters/rabbitmq/requeue_strategies/dead_lettering_spec.rb +102 -0
  45. data/spec/lib/adapters/rabbitmq_adapter_spec.rb +39 -49
  46. data/spec/lib/adapters/test_adapter_spec.rb +15 -19
  47. data/spec/lib/support/configuration_spec.rb +1 -1
  48. data/spec/lib/support/hash_refinements_spec.rb +8 -2
  49. data/spec/spec_helper.rb +8 -5
  50. data/spec/support/rabbitmq_queue_matchers.rb +53 -0
  51. data/spec/support/shared_examples/basquiat_adapter_shared_examples.rb +9 -20
  52. metadata +65 -6
  53. data/.travis.yml +0 -3
  54. data/docker/basquiat_start.sh +0 -9
@@ -2,78 +2,68 @@ require 'spec_helper'
2
2
  require 'basquiat/adapters/rabbitmq_adapter'
3
3
 
4
4
  describe Basquiat::Adapters::RabbitMq do
5
- subject { Basquiat::Adapters::RabbitMq.new }
6
-
7
- it_behaves_like 'a Basquiat::Adapter'
5
+ subject(:adapter) { Basquiat::Adapters::RabbitMq.new }
8
6
 
9
7
  let(:base_options) do
10
- { servers: [{ host: ENV.fetch('BASQUIAT_RABBITMQ_1_PORT_5672_TCP_ADDR') { 'localhost' },
11
- port: ENV.fetch('BASQUIAT_RABBITMQ_1_PORT_5672_TCP_PORT') { 5672 } }] }
12
- end
13
-
14
- before(:each) do
15
- subject.adapter_options(base_options)
16
- end
17
-
18
- after(:each) do
19
- remove_queues_and_exchanges
8
+ { servers: [{ host: ENV.fetch('BASQUIAT_RABBITMQ_1_PORT_5672_TCP_ADDR') { 'localhost' },
9
+ port: ENV.fetch('BASQUIAT_RABBITMQ_1_PORT_5672_TCP_PORT') { 5672 } }],
10
+ publisher: { persistent: true } }
20
11
  end
21
12
 
22
- context 'failover' do
23
- let(:failover_settings) do
24
- base_options[:servers].unshift({ host: 'localhost', port: 1234 })
25
- base_options.merge(failover: { default_timeout: 0.2, max_retries: 2 })
13
+ context 'RabbitMQ interactions' do
14
+ before(:each) do
15
+ adapter.adapter_options(base_options)
16
+ adapter.reset_connection
26
17
  end
27
18
 
28
- it 'tries a reconnection after a few seconds' do
29
- subject.adapter_options(servers: [host: 'localhost', port: 1234],
30
- failover: { default_timeout: 0.2, max_retries: 1 })
31
- expect { subject.connect }.to raise_exception(Bunny::TCPConnectionFailed)
19
+ after(:each) do
20
+ remove_queues_and_exchanges
32
21
  end
33
22
 
34
- it 'uses another server after all retries on a single one' do
35
- subject.adapter_options(failover_settings)
36
- expect { subject.connect }.to_not raise_error
37
- expect(subject.connection_uri).to match(/5672/)
23
+ context 'publisher' do
24
+ it '#publish [enqueue a message]' do
25
+ expect do
26
+ adapter.publish('messages.welcome', data: 'A Nice Welcome Message')
27
+ end.to_not raise_error
28
+ end
38
29
  end
39
- end
40
30
 
41
- it '#connected?' do
42
- expect(subject.connected?).to be_nil
43
- subject.connect
44
- expect(subject.connected?).to_not be_nil
45
- end
31
+ context 'listener' do
32
+ it '#subscribe_to some event' do
33
+ message = ''
34
+ adapter.subscribe_to('some.event',
35
+ ->(msg) { message << msg[:data].upcase! })
36
+ adapter.listen(block: false)
37
+ adapter.publish('some.event', data: 'coisa')
38
+ sleep 0.7 # Wait for the listening thread
46
39
 
47
- context 'publisher' do
48
- it '#publish [enqueue a message]' do
49
- expect do
50
- subject.publish('messages.welcome', data: 'A Nice Welcome Message')
51
- end.to_not raise_error
40
+ expect(message).to eq('COISA')
41
+ end
52
42
  end
53
- end
54
43
 
55
- context 'listener' do
56
- it '#subscribe_to some event' do
44
+ it '#subscribe_to other event with #' do
57
45
  message_received = ''
58
- subject.subscribe_to('some.event', lambda do |msg|
59
- msg[:data].upcase!
60
- message_received = msg
61
- end)
46
+ subject.subscribe_to('other.event.#',
47
+ lambda do |msg|
48
+ msg[:data].upcase!
49
+ message_received = msg
50
+ end)
62
51
  subject.listen(block: false)
63
52
 
64
- subject.publish('some.event', data: 'coisa')
65
- sleep 0.1 # Wait for the listening thread.
53
+ subject.publish('other.event.extra.info', data: 'some stuff')
54
+ sleep 0.3 # Wait for the listening thread.
66
55
 
67
- expect(message_received).to eq(data: 'COISA')
56
+ expect(message_received).to eq(data: 'SOME STUFF')
68
57
  end
58
+
69
59
  end
70
60
 
71
61
  def remove_queues_and_exchanges
72
- subject.send(:queue).delete
73
- subject.send(:exchange).delete
62
+ adapter.session.queue.delete
63
+ adapter.session.exchange.delete
74
64
  rescue Bunny::TCPConnectionFailed
75
65
  true
76
66
  ensure
77
- subject.send(:disconnect)
67
+ adapter.send(:disconnect)
78
68
  end
79
69
  end
@@ -1,59 +1,55 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Basquiat::Adapters::Test do
4
- subject { Basquiat::Adapters::Test.new }
5
- it_behaves_like 'a Basquiat::Adapter'
4
+ subject(:adapter) { Basquiat::Adapters::Test.new }
6
5
 
7
6
  context 'publisher' do
8
7
  it '#publish [enqueue a message]' do
9
8
  expect do
10
- subject.publish('messages.welcome', value: 'A Nice Welcome Message')
11
- end.to change { subject.events('messages.welcome').size }.by(1)
12
- expect(subject.events('messages.welcome')[0]).to match(/A Nice Welcome Message/)
9
+ adapter.publish('messages.welcome', value: 'A Nice Welcome Message')
10
+ end.to change { adapter.events('messages.welcome').size }.by(1)
11
+ expect(adapter.events('messages.welcome')[0]).to match(/A Nice Welcome Message/)
13
12
  end
14
13
  end
15
14
 
16
15
  context 'listener' do
17
16
  before(:each) do
18
- subject.publish('some.event', data: 'some message')
17
+ adapter.publish('some.event', data: 'some message')
19
18
  end
20
19
 
21
20
  it '#subscribe_to some event' do
22
- subject.subscribe_to('some.event', ->(msg) { msg.values.map(&:upcase) })
23
- expect(subject.listen).to eq(['SOME MESSAGE'])
21
+ adapter.subscribe_to('some.event', ->(msg) { msg.values.map(&:upcase) })
22
+ expect(adapter.listen).to eq(['SOME MESSAGE'])
24
23
  end
25
24
 
26
25
  it '#subscribe_to multiple events' do
27
- subject.instance_eval <<-METHCALL
26
+ adapter.instance_eval <<-METHCALL
28
27
  subscribe_to('some.event', ->(msg) { publish 'some.other', data: msg.values.first.upcase; msg })
29
28
  METHCALL
30
- subject.subscribe_to('some.other', ->(msg) { msg.values.first.downcase })
31
- expect(subject.listen).to eq(data: 'some message')
32
- expect(subject.events('some.other')[0]).to match(/SOME MESSAGE/)
33
- expect(subject.listen).to eq('some message')
29
+ adapter.subscribe_to('some.other', ->(msg) { msg.values.first.downcase })
30
+ expect(adapter.listen).to eq(data: 'some message')
31
+ expect(adapter.events('some.other')[0]).to match(/SOME MESSAGE/)
32
+ expect(adapter.listen).to eq('some message')
34
33
  end
35
34
  end
36
35
 
37
36
  describe '#clean' do
38
37
  context 'when no event has been published' do
39
-
40
38
  it 'should have no event registered' do
41
39
  Basquiat::Adapters::Test.clean
42
-
43
40
  expect(Basquiat::Adapters::Test.events).to be_empty
44
41
  end
45
42
  end
46
43
 
47
44
  context 'when some events have been published' do
48
45
  before do
49
- subject.publish('some.message', value: 'A Nice Welcome Message')
50
- subject.publish('some.message', value: 'A Nasty Welcome Message')
51
- subject.publish('other.message', value: 'A Random Welcome Message')
46
+ adapter.publish('some.message', value: 'A Nice Welcome Message')
47
+ adapter.publish('some.message', value: 'A Nasty Welcome Message')
48
+ adapter.publish('other.message', value: 'A Random Welcome Message')
52
49
  end
53
50
 
54
51
  it 'should have no event registered' do
55
52
  Basquiat::Adapters::Test.clean
56
-
57
53
  expect(Basquiat::Adapters::Test.events).to be_empty
58
54
  end
59
55
  end
@@ -58,7 +58,7 @@ describe Basquiat::Configuration do
58
58
 
59
59
  it 'settings provided on the config file have lower precedence' do
60
60
  config.exchange_name = 'super.nice_exchange'
61
- config.config_file = File.join(File.dirname(__FILE__), '../../support/basquiat.yml')
61
+ config.config_file = File.join(File.dirname(__FILE__), '../../support/basquiat.yml')
62
62
 
63
63
  expect(config.exchange_name).to eq('super.nice_exchange')
64
64
  end
@@ -8,11 +8,18 @@ describe Basquiat::HashRefinements do
8
8
  end
9
9
 
10
10
  it '#deep_merge' do
11
- hash.deep_merge({ 'hash' => { 'inner_key' => 7, 'other_inner_key' => 10 } })
11
+ hash.deep_merge('hash' => { 'inner_key' => 7, 'other_inner_key' => 10 })
12
12
  expect(hash['hash']).to have_key('other_inner_key')
13
13
  expect(hash['hash']['inner_key']).to eq(7)
14
14
  end
15
15
 
16
+ it '#deep_merge with nested different hashes' do
17
+ base = { queue: { options: { some: 'value' } } }
18
+ other = { queue: { options: { another: 'setting' } } }
19
+ base.deep_merge(other)
20
+ expect(base[:queue][:options].keys).to contain_exactly(:some, :another)
21
+ end
22
+
16
23
  it '#symbolize_keys' do
17
24
  symbol_hash = hash.symbolize_keys
18
25
  expect(symbol_hash).to have_key(:array)
@@ -20,5 +27,4 @@ describe Basquiat::HashRefinements do
20
27
  expect(symbol_hash).to have_key(:hash)
21
28
  expect(symbol_hash[:hash]).to have_key(:inner_key)
22
29
  end
23
-
24
30
  end
data/spec/spec_helper.rb CHANGED
@@ -6,10 +6,12 @@ SimpleCov.start do
6
6
  add_filter { |source| source.lines_of_code <= 3 }
7
7
  add_filter { |source| source.filename =~ /spec/ }
8
8
 
9
- add_group('Adapters') { |source| source.filename =~ /basquiat\/adapters/ }
10
- add_group('Interfaces') { |source| source.filename =~ /basquiat\/interfaces/ }
11
- add_group('Support') { |source| source.filename =~ /basquiat\/support/ }
12
- add_group('Main Gem File') { |source| source.filename =~ %r{\/lib\/basquiat\.rb$} }
9
+ add_group('Adapters') { |source| source.filename =~ %r{lib/basquiat/adapters} }
10
+ add_group('RabbitMQ') { |source| source.filename =~ %r{lib/basquiat/adapters/rabbitmq} }
11
+ add_group('Errors') { |source| source.filename =~ %r{lib/basquiat/errors} }
12
+ add_group('Interfaces') { |source| source.filename =~ %r{lib/basquiat/interfaces} }
13
+ add_group('Main') { |source| source.filename =~ %r{lib/basquiat\.rb$} }
14
+ add_group('Support') { |source| source.filename =~ %r{lib/basquiat/support} }
13
15
  end
14
16
 
15
17
  ENV['BASQUIAT_ENV'] = 'test'
@@ -17,6 +19,7 @@ require 'basquiat'
17
19
 
18
20
  Basquiat.configure do |config|
19
21
  config.config_file = File.expand_path('../support/basquiat.yml', __FILE__)
22
+ config.logger = Logger.new('log/basquiat_test.log')
20
23
  end
21
-
22
24
  require 'support/shared_examples/basquiat_adapter_shared_examples'
25
+ require 'support/rabbitmq_queue_matchers'
@@ -0,0 +1,53 @@
1
+ class QueueStats
2
+ def initialize(queue)
3
+ @queue = queue
4
+ host = ENV.fetch('BASQUIAT_RABBITMQ_1_PORT_25672_TCP_ADDR', 'localhost')
5
+ port = ENV.fetch('BASQUIAT_RABBITMQ_1_PORT_15672_TCP_PORT', 15_672)
6
+ @uri = "http://guest:guest@#{host}:#{port}/api/queues/%2F/#{@queue}"
7
+ end
8
+
9
+ def unacked_messages
10
+ queue_status.fetch(:messages_unacknowledged)
11
+ end
12
+
13
+ private
14
+
15
+ def queue_status
16
+ @message ||= MultiJson.load(fetch, symbolize_keys: true)
17
+ end
18
+
19
+ def fetch
20
+ `curl -sXGET -H 'Accepts: application/json' #{@uri}`
21
+ end
22
+ end
23
+
24
+ RSpec::Matchers.define :have_n_unacked_messages do |expected| # number of unacked messages
25
+ match do |queue| # queue
26
+ expected == QueueStats.new(queue.name).unacked_messages
27
+ end
28
+
29
+ failure_message do |queue|
30
+ "expected #{expected} unacked messages but got #{QueueStats.new(queue.name).unacked_messages}"
31
+ end
32
+ end
33
+
34
+ RSpec::Matchers.define :have_unacked_messages do
35
+ match do |queue|
36
+ QueueStats.new(queue.name).unacked_messages > 0
37
+ end
38
+
39
+ failure_message_when_negated do |queue|
40
+ "expected #{queue.name} to have 0 unacked messages but got #{QueueStats.new(queue.name).unacked_messages}"
41
+ end
42
+ end
43
+
44
+ # convenience method
45
+ def remove_queues_and_exchanges(adapter)
46
+ # Ugly as hell. Probably transform into a proper method in session
47
+ adapter.session.channel.queues.each_pair { |_, queue| queue.delete }
48
+ adapter.session.channel.exchanges.each_pair { |_, ex| ex.delete }
49
+ rescue Bunny::TCPConnectionFailed
50
+ true
51
+ ensure
52
+ adapter.reset_connection
53
+ end
@@ -1,23 +1,12 @@
1
1
  shared_examples_for 'a Basquiat::Adapter' do
2
- it '#adapter_options(opts)' do
3
- expect(subject).to respond_to(:adapter_options)
4
- end
5
-
6
- it '#publish' do
7
- expect(subject).to respond_to(:publish)
8
- end
9
-
10
- it '#default_options [template for option initialization]' do
11
- expect(subject).to respond_to(:default_options)
12
- end
13
-
14
- it '#subscribe_to' do
15
- expect(subject).to respond_to(:subscribe_to)
16
- end
17
-
18
- it 'merges the options with the default ones' do
19
- opts = subject.instance_variable_get(:@options)
20
- subject.adapter_options(nice_option: '127.0.0.2')
21
- expect(opts[:nice_option]).to eq('127.0.0.2')
2
+ [:adapter_options,
3
+ :base_options,
4
+ :default_options,
5
+ :publish,
6
+ :subscribe_to,
7
+ :disconnect].each do |meth|
8
+ it "#{meth}" do
9
+ expect(adapter).to respond_to(:meth)
10
+ end
22
11
  end
23
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: basquiat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcello "mereghost" Rocha
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-30 00:00:00.000000000 Z
11
+ date: 2015-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -192,6 +192,34 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: byebug
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: pry-byebug
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
195
223
  - !ruby/object:Gem::Dependency
196
224
  name: multi_json
197
225
  requirement: !ruby/object:Gem::Requirement
@@ -230,25 +258,40 @@ extra_rdoc_files: []
230
258
  files:
231
259
  - ".gitignore"
232
260
  - ".metrics"
261
+ - ".reek"
233
262
  - ".rspec"
234
263
  - ".rubocop.yml"
235
264
  - ".ruby-gemset"
236
265
  - ".ruby-version"
237
- - ".travis.yml"
238
266
  - Gemfile
239
267
  - Guardfile
240
268
  - LICENSE.txt
241
269
  - README.md
242
270
  - Rakefile
243
271
  - basquiat.gemspec
272
+ - basquiat_docker.sh
244
273
  - docker-compose.yml
245
274
  - docker/Dockerfile
246
- - docker/basquiat_start.sh
275
+ - docker/guard_start.sh
247
276
  - lib/basquiat.rb
248
277
  - lib/basquiat/adapters.rb
249
278
  - lib/basquiat/adapters/base_adapter.rb
279
+ - lib/basquiat/adapters/base_message.rb
280
+ - lib/basquiat/adapters/rabbitmq/configuration.rb
281
+ - lib/basquiat/adapters/rabbitmq/connection.rb
282
+ - lib/basquiat/adapters/rabbitmq/events.rb
283
+ - lib/basquiat/adapters/rabbitmq/message.rb
284
+ - lib/basquiat/adapters/rabbitmq/requeue_strategies.rb
285
+ - lib/basquiat/adapters/rabbitmq/requeue_strategies/base_strategy.rb
286
+ - lib/basquiat/adapters/rabbitmq/requeue_strategies/basic_acknowledge.rb
287
+ - lib/basquiat/adapters/rabbitmq/requeue_strategies/dead_lettering.rb
288
+ - lib/basquiat/adapters/rabbitmq/requeue_strategies/delayed_delivery.rb
289
+ - lib/basquiat/adapters/rabbitmq/session.rb
250
290
  - lib/basquiat/adapters/rabbitmq_adapter.rb
251
291
  - lib/basquiat/adapters/test_adapter.rb
292
+ - lib/basquiat/errors.rb
293
+ - lib/basquiat/errors/strategy_not_registered.rb
294
+ - lib/basquiat/errors/subclass_responsibility.rb
252
295
  - lib/basquiat/interfaces/base.rb
253
296
  - lib/basquiat/rails/railtie.rb
254
297
  - lib/basquiat/support.rb
@@ -257,6 +300,13 @@ files:
257
300
  - lib/basquiat/support/json.rb
258
301
  - lib/basquiat/version.rb
259
302
  - spec/lib/adapters/base_adapter_spec.rb
303
+ - spec/lib/adapters/base_message_spec.rb
304
+ - spec/lib/adapters/rabbitmq/configuration_spec.rb
305
+ - spec/lib/adapters/rabbitmq/connection_spec.rb
306
+ - spec/lib/adapters/rabbitmq/events_spec.rb
307
+ - spec/lib/adapters/rabbitmq/message_spec.rb
308
+ - spec/lib/adapters/rabbitmq/requeue_strategies/basic_acknowledge_spec.rb
309
+ - spec/lib/adapters/rabbitmq/requeue_strategies/dead_lettering_spec.rb
260
310
  - spec/lib/adapters/rabbitmq_adapter_spec.rb
261
311
  - spec/lib/adapters/test_adapter_spec.rb
262
312
  - spec/lib/basquiat_spec.rb
@@ -266,8 +316,9 @@ files:
266
316
  - spec/lib/support/json_spec.rb
267
317
  - spec/spec_helper.rb
268
318
  - spec/support/basquiat.yml
319
+ - spec/support/rabbitmq_queue_matchers.rb
269
320
  - spec/support/shared_examples/basquiat_adapter_shared_examples.rb
270
- homepage: http://www.vagas.com.br/
321
+ homepage: http://github.com/VAGAScom/basquiat
271
322
  licenses:
272
323
  - MIT
273
324
  metadata: {}
@@ -287,12 +338,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
338
  version: '0'
288
339
  requirements: []
289
340
  rubyforge_project:
290
- rubygems_version: 2.4.4
341
+ rubygems_version: 2.4.8
291
342
  signing_key:
292
343
  specification_version: 4
293
344
  summary: A pluggable library that aims to hide message queue complexity
294
345
  test_files:
295
346
  - spec/lib/adapters/base_adapter_spec.rb
347
+ - spec/lib/adapters/base_message_spec.rb
348
+ - spec/lib/adapters/rabbitmq/configuration_spec.rb
349
+ - spec/lib/adapters/rabbitmq/connection_spec.rb
350
+ - spec/lib/adapters/rabbitmq/events_spec.rb
351
+ - spec/lib/adapters/rabbitmq/message_spec.rb
352
+ - spec/lib/adapters/rabbitmq/requeue_strategies/basic_acknowledge_spec.rb
353
+ - spec/lib/adapters/rabbitmq/requeue_strategies/dead_lettering_spec.rb
296
354
  - spec/lib/adapters/rabbitmq_adapter_spec.rb
297
355
  - spec/lib/adapters/test_adapter_spec.rb
298
356
  - spec/lib/basquiat_spec.rb
@@ -302,4 +360,5 @@ test_files:
302
360
  - spec/lib/support/json_spec.rb
303
361
  - spec/spec_helper.rb
304
362
  - spec/support/basquiat.yml
363
+ - spec/support/rabbitmq_queue_matchers.rb
305
364
  - spec/support/shared_examples/basquiat_adapter_shared_examples.rb