basquiat 1.1.1 → 1.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.
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