hoodoo 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +8 -8
  2. data/lib/hoodoo/client/endpoint/endpoints/amqp.rb +43 -25
  3. data/lib/hoodoo/discovery.rb +1 -1
  4. data/lib/hoodoo/services/discovery/discoverers/by_flux.rb +130 -0
  5. data/lib/hoodoo/services/discovery/results/for_amqp.rb +15 -21
  6. data/lib/hoodoo/services/discovery/results/for_local.rb +17 -0
  7. data/lib/hoodoo/services/middleware/amqp_log_message.rb +92 -154
  8. data/lib/hoodoo/services/middleware/amqp_log_writer.rb +25 -50
  9. data/lib/hoodoo/services/middleware/middleware.rb +75 -25
  10. data/lib/hoodoo/services/services/service.rb +2 -2
  11. data/lib/hoodoo/version.rb +1 -1
  12. data/spec/services/discovery/discoverers/by_flux_spec.rb +134 -0
  13. data/spec/services/discovery/results/for_amqp_spec.rb +4 -7
  14. data/spec/services/discovery/results/for_local_spec.rb +4 -0
  15. data/spec/services/middleware/amqp_log_message_spec.rb +32 -34
  16. data/spec/services/middleware/amqp_log_writer_spec.rb +2 -5
  17. data/spec/services/middleware/middleware_exotic_communication_spec.rb +147 -143
  18. data/spec/services/middleware/middleware_logging_spec.rb +10 -10
  19. data/spec/services/middleware/middleware_multi_remote_spec.rb +1 -1
  20. data/spec/services/middleware/middleware_public_spec.rb +73 -18
  21. data/spec/services/middleware/middleware_spec.rb +4 -4
  22. data/spec/services/services/application_spec.rb +3 -3
  23. data/spec/spec_helper.rb +3 -8
  24. metadata +19 -7
  25. data/lib/hoodoo/services/discovery/discoverers/by_consul.rb +0 -66
  26. data/spec/alchemy/alchemy-amq.rb +0 -33
  27. data/spec/services/discovery/discoverers/by_consul_spec.rb +0 -29
@@ -1,5 +1,5 @@
1
1
  # service_middleware_spec.rb is too large. This file covers logging
2
- # extentions around StructuredLogger and AMQPLogMessage.
2
+ # extentions around StructuredLogger.
3
3
 
4
4
  require 'spec_helper'
5
5
 
@@ -101,8 +101,8 @@ describe Hoodoo::Services::Middleware do
101
101
 
102
102
  context 'off queue' do
103
103
  before :each do
104
- @old_queue = ENV[ 'AMQ_ENDPOINT' ]
105
- ENV[ 'AMQ_ENDPOINT' ] = nil
104
+ @old_queue = ENV[ 'AMQ_URI' ]
105
+ ENV[ 'AMQ_URI' ] = nil
106
106
 
107
107
  @cvar = false
108
108
  if Hoodoo::Services::Middleware.class_variable_defined?( '@@alchemy' )
@@ -112,7 +112,7 @@ describe Hoodoo::Services::Middleware do
112
112
  end
113
113
 
114
114
  after :each do
115
- ENV[ 'AMQ_ENDPOINT' ] = @old_queue
115
+ ENV[ 'AMQ_URI' ] = @old_queue
116
116
 
117
117
  if Hoodoo::Services::Middleware.class_variable_defined?( '@@alchemy' )
118
118
  if @cvar == true
@@ -155,8 +155,8 @@ describe Hoodoo::Services::Middleware do
155
155
 
156
156
  context 'on queue' do
157
157
  before :each do
158
- @old_queue = ENV[ 'AMQ_ENDPOINT' ]
159
- ENV[ 'AMQ_ENDPOINT' ] = 'amqp://test:test@127.0.0.1'
158
+ @old_queue = ENV[ 'AMQ_URI' ]
159
+ ENV[ 'AMQ_URI' ] = 'amqp://test:test@127.0.0.1'
160
160
 
161
161
  @cvar = false
162
162
  if Hoodoo::Services::Middleware.class_variable_defined?( '@@alchemy' )
@@ -166,7 +166,7 @@ describe Hoodoo::Services::Middleware do
166
166
  end
167
167
 
168
168
  after :each do
169
- ENV[ 'AMQ_ENDPOINT' ] = @old_queue
169
+ ENV[ 'AMQ_URI' ] = @old_queue
170
170
 
171
171
  if Hoodoo::Services::Middleware.class_variable_defined?( '@@alchemy' )
172
172
  if @cvar == true
@@ -182,7 +182,7 @@ describe Hoodoo::Services::Middleware do
182
182
  @app = app
183
183
  end
184
184
  def call(env)
185
- env['rack.alchemy'] = self
185
+ env['alchemy.service'] = self
186
186
  @app.call(env)
187
187
  end
188
188
  def send_message(*args)
@@ -214,7 +214,7 @@ describe Hoodoo::Services::Middleware do
214
214
  it 'has the expected "development" mode loggers' do
215
215
  force_logging_to( 'development' )
216
216
 
217
- expect_any_instance_of(FakeAlchemy).to receive(:send_message).at_least(:once)
217
+ expect_any_instance_of(FakeAlchemy).to receive(:send_message_to_queue).at_least(:once)
218
218
  spec_helper_silence_stdout() do
219
219
  get '/v1/test_log/hello', nil, { 'CONTENT_TYPE' => 'application/json; charset=utf-8' }
220
220
  end
@@ -228,7 +228,7 @@ describe Hoodoo::Services::Middleware do
228
228
  it 'has the expected "production" mode loggers' do
229
229
  force_logging_to( 'production' )
230
230
 
231
- expect_any_instance_of(FakeAlchemy).to receive(:send_message).at_least(:once)
231
+ expect_any_instance_of(FakeAlchemy).to receive(:send_message_to_queue).at_least(:once)
232
232
  get '/v1/test_log/hello', nil, { 'CONTENT_TYPE' => 'application/json; charset=utf-8' }
233
233
 
234
234
  instances = Hoodoo::Services::Middleware.logger.instances
@@ -403,7 +403,7 @@ describe Hoodoo::Services::Middleware do
403
403
 
404
404
  response = spec_helper_http(
405
405
  port: @port,
406
- path: '/v2/test_some_echoes.tar.gz?limit=25&offset=75&_reference=embed_one,embed_two',
406
+ path: '/2/TestEcho.tar.gz?limit=25&offset=75&_reference=embed_one,embed_two',
407
407
  headers: headers
408
408
  )
409
409
 
@@ -59,9 +59,16 @@ end
59
59
 
60
60
  describe Hoodoo::Services::Middleware do
61
61
 
62
- def try_to_call( endpoint, ident = nil )
62
+ def try_to_call( endpoint: nil,
63
+ resource: nil,
64
+ ident: nil )
65
+
66
+ path = resource.nil? ?
67
+ "/v1/#{ endpoint }/#{ ident }" :
68
+ "/1/#{ resource }/#{ ident }"
69
+
63
70
  get(
64
- "/v1/#{ endpoint }/#{ ident }",
71
+ path,
65
72
  nil,
66
73
  { 'CONTENT_TYPE' => 'application/json; charset=utf-8' }
67
74
  )
@@ -102,24 +109,36 @@ describe Hoodoo::Services::Middleware do
102
109
 
103
110
  context '#list' do
104
111
  it 'prohibits actions without session', :without_session => true do
105
- try_to_call( 'no_public_action' )
112
+ try_to_call( endpoint: 'no_public_action' )
113
+ expect( last_response.status ).to eq( 401 )
114
+
115
+ try_to_call( resource: 'NoPublicAction' )
106
116
  expect( last_response.status ).to eq( 401 )
107
117
  end
108
118
 
109
119
  it 'allows actions with session' do
110
- try_to_call( 'no_public_action' )
120
+ try_to_call( endpoint: 'no_public_action' )
121
+ expect( last_response.status ).to eq( 200 )
122
+
123
+ try_to_call( resource: 'NoPublicAction' )
111
124
  expect( last_response.status ).to eq( 200 )
112
125
  end
113
126
  end
114
127
 
115
128
  context '#show' do
116
129
  it 'prohibits actions without session', :without_session => true do
117
- try_to_call( 'no_public_action', 'some_uuid' )
130
+ try_to_call( endpoint: 'no_public_action', ident: 'some_uuid' )
131
+ expect( last_response.status ).to eq( 401 )
132
+
133
+ try_to_call( resource: 'NoPublicAction', ident: 'some_uuid' )
118
134
  expect( last_response.status ).to eq( 401 )
119
135
  end
120
136
 
121
137
  it 'allows actions with session' do
122
- try_to_call( 'no_public_action', 'some_uuid' )
138
+ try_to_call( endpoint: 'no_public_action', ident: 'some_uuid' )
139
+ expect( last_response.status ).to eq( 200 )
140
+
141
+ try_to_call( resource: 'NoPublicAction', ident: 'some_uuid' )
123
142
  expect( last_response.status ).to eq( 200 )
124
143
  end
125
144
  end
@@ -145,22 +164,34 @@ describe Hoodoo::Services::Middleware do
145
164
  end
146
165
 
147
166
  it 'prohibits secure actions without session', :without_session => true do
148
- try_to_call( 'public_action', 'some_uuid' )
167
+ try_to_call( endpoint: 'public_action', ident: 'some_uuid' )
168
+ expect( last_response.status ).to eq( 401 )
169
+
170
+ try_to_call( resource: 'PublicAction', ident: 'some_uuid' )
149
171
  expect( last_response.status ).to eq( 401 )
150
172
  end
151
173
 
152
174
  it 'allows secure actions with session' do
153
- try_to_call( 'public_action', 'some_uuid' )
175
+ try_to_call( endpoint: 'public_action', ident: 'some_uuid' )
176
+ expect( last_response.status ).to eq( 200 )
177
+
178
+ try_to_call( resource: 'PublicAction', ident: 'some_uuid' )
154
179
  expect( last_response.status ).to eq( 200 )
155
180
  end
156
181
 
157
182
  it 'allows public actions without session', :without_session => true do
158
- try_to_call( 'public_action' )
183
+ try_to_call( endpoint: 'public_action' )
184
+ expect( last_response.status ).to eq( 200 )
185
+
186
+ try_to_call( resource: 'PublicAction' )
159
187
  expect( last_response.status ).to eq( 200 )
160
188
  end
161
189
 
162
190
  it 'allows public actions with session' do
163
- try_to_call( 'public_action' )
191
+ try_to_call( endpoint: 'public_action' )
192
+ expect( last_response.status ).to eq( 200 )
193
+
194
+ try_to_call( resource: 'PublicAction' )
164
195
  expect( last_response.status ).to eq( 200 )
165
196
  end
166
197
  end
@@ -187,24 +218,36 @@ describe Hoodoo::Services::Middleware do
187
218
  context 'in interface with no public actions' do
188
219
  context '#list' do
189
220
  it 'prohibits actions without session', :without_session => true do
190
- try_to_call( 'no_public_action' )
221
+ try_to_call( endpoint: 'no_public_action' )
222
+ expect( last_response.status ).to eq( 401 )
223
+
224
+ try_to_call( resource: 'NoPublicAction' )
191
225
  expect( last_response.status ).to eq( 401 )
192
226
  end
193
227
 
194
228
  it 'allows actions with session' do
195
- try_to_call( 'no_public_action' )
229
+ try_to_call( endpoint: 'no_public_action' )
230
+ expect( last_response.status ).to eq( 200 )
231
+
232
+ try_to_call( resource: 'NoPublicAction' )
196
233
  expect( last_response.status ).to eq( 200 )
197
234
  end
198
235
  end
199
236
 
200
237
  context '#show' do
201
238
  it 'prohibits actions without session', :without_session => true do
202
- try_to_call( 'no_public_action', 'some_uuid' )
239
+ try_to_call( endpoint: 'no_public_action', ident: 'some_uuid' )
240
+ expect( last_response.status ).to eq( 401 )
241
+
242
+ try_to_call( resource: 'NoPublicAction', ident: 'some_uuid' )
203
243
  expect( last_response.status ).to eq( 401 )
204
244
  end
205
245
 
206
246
  it 'allows actions with session' do
207
- try_to_call( 'no_public_action', 'some_uuid' )
247
+ try_to_call( endpoint: 'no_public_action', ident: 'some_uuid' )
248
+ expect( last_response.status ).to eq( 200 )
249
+
250
+ try_to_call( resource: 'NoPublicAction', ident: 'some_uuid' )
208
251
  expect( last_response.status ).to eq( 200 )
209
252
  end
210
253
  end
@@ -212,22 +255,34 @@ describe Hoodoo::Services::Middleware do
212
255
 
213
256
  context 'in interface with public actions' do
214
257
  it 'prohibits secure actions without session', :without_session => true do
215
- try_to_call( 'public_action', 'some_uuid' )
258
+ try_to_call( endpoint: 'public_action', ident: 'some_uuid' )
259
+ expect( last_response.status ).to eq( 401 )
260
+
261
+ try_to_call( resource: 'PublicAction', ident: 'some_uuid' )
216
262
  expect( last_response.status ).to eq( 401 )
217
263
  end
218
264
 
219
265
  it 'allows secure actions with session' do
220
- try_to_call( 'public_action', 'some_uuid' )
266
+ try_to_call( endpoint: 'public_action', ident: 'some_uuid' )
267
+ expect( last_response.status ).to eq( 200 )
268
+
269
+ try_to_call( resource: 'PublicAction', ident: 'some_uuid' )
221
270
  expect( last_response.status ).to eq( 200 )
222
271
  end
223
272
 
224
273
  it 'allows public actions without session', :without_session => true do
225
- try_to_call( 'public_action' )
274
+ try_to_call( endpoint: 'public_action' )
275
+ expect( last_response.status ).to eq( 200 )
276
+
277
+ try_to_call( resource: 'PublicAction' )
226
278
  expect( last_response.status ).to eq( 200 )
227
279
  end
228
280
 
229
281
  it 'allows public actions with session' do
230
- try_to_call( 'public_action' )
282
+ try_to_call( endpoint: 'public_action' )
283
+ expect( last_response.status ).to eq( 200 )
284
+
285
+ try_to_call( resource: 'PublicAction' )
231
286
  expect( last_response.status ).to eq( 200 )
232
287
  end
233
288
  end
@@ -194,12 +194,12 @@ describe Hoodoo::Services::Middleware do
194
194
  end
195
195
 
196
196
  it 'should know about a queue' do
197
- old = ENV[ 'AMQ_ENDPOINT' ]
198
- ENV[ 'AMQ_ENDPOINT' ] = nil
197
+ old = ENV[ 'AMQ_URI' ]
198
+ ENV[ 'AMQ_URI' ] = nil
199
199
  expect(Hoodoo::Services::Middleware.on_queue?).to eq(false)
200
- ENV[ 'AMQ_ENDPOINT' ] = 'foo'
200
+ ENV[ 'AMQ_URI' ] = 'foo'
201
201
  expect(Hoodoo::Services::Middleware.on_queue?).to eq(true)
202
- ENV[ 'AMQ_ENDPOINT' ] = old
202
+ ENV[ 'AMQ_URI' ] = old
203
203
  end
204
204
  end
205
205
 
@@ -28,17 +28,17 @@ describe Hoodoo::Services::Service do
28
28
  it 'should complain about incorrect interface classes' do
29
29
  expect {
30
30
  RSpecTestService.comprised_of( Hash )
31
- }.to raise_error(RuntimeError, "Hoodoo::Services::Implementation::comprised_of expects Hoodoo::Services::Interface subclasses only - got 'Hash'")
31
+ }.to raise_error(RuntimeError, "Hoodoo::Services::Service::comprised_of expects Hoodoo::Services::Interface subclasses only - got 'Hash'")
32
32
 
33
33
  expect {
34
34
  RSpecTestService.comprised_of( Hoodoo::Services::Interface )
35
- }.to raise_error(RuntimeError, "Hoodoo::Services::Implementation::comprised_of expects Hoodoo::Services::Interface subclasses only - got 'Hoodoo::Services::Interface'")
35
+ }.to raise_error(RuntimeError, "Hoodoo::Services::Service::comprised_of expects Hoodoo::Services::Interface subclasses only - got 'Hoodoo::Services::Interface'")
36
36
  end
37
37
 
38
38
  it 'should complain if called directly' do
39
39
  expect {
40
40
  RSpecTestService.new.call( nil )
41
- }.to raise_error(RuntimeError, "Hoodoo::Services::Implementation subclasses should only be called through the middleware - add 'use Hoodoo::Services::Middleware' to (e.g.) config.ru")
41
+ }.to raise_error(RuntimeError, "Hoodoo::Services::Service subclasses should only be called through the middleware - add 'use Hoodoo::Services::Middleware' to (e.g.) config.ru")
42
42
  end
43
43
 
44
44
  it 'should correctly report its component classes' do
data/spec/spec_helper.rb CHANGED
@@ -30,17 +30,12 @@ require 'database_cleaner'
30
30
  require 'active_record'
31
31
  require 'logger'
32
32
 
33
- # Include AlchemyAMQ for testing only.
34
-
35
- # TODO: See spec/alchemy/alchemy-amq.rb. Remove this once 'real' Alchemy
36
- # is opened.
37
- #
38
- $LOAD_PATH.unshift File.join( File.dirname( __FILE__ ), 'alchemy' )
33
+ # Include Alchemy Flux for testing only.
39
34
 
40
35
  begin
41
- require 'alchemy-amq'
36
+ require 'alchemy-flux'
42
37
  rescue LoadError
43
- raise 'Cannot load alchemy-amq; did you run me with "bundle exec..." ?'
38
+ raise 'Cannot load alchemy-flux; did you run me with "bundle exec..." ?'
44
39
  end
45
40
 
46
41
  # Now it's safe to require Rack test code and Hoodoo itself.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoodoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Loyalty New Zealand
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-14 00:00:00.000000000 Z
11
+ date: 2016-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uuidtools
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.6'
111
+ - !ruby/object:Gem::Dependency
112
+ name: alchemy-flux
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '0.1'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '0.1'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rspec
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -348,11 +362,11 @@ files:
348
362
  - lib/hoodoo/presenters/types/text.rb
349
363
  - lib/hoodoo/presenters/types/uuid.rb
350
364
  - lib/hoodoo/services.rb
351
- - lib/hoodoo/services/discovery/discoverers/by_consul.rb
352
365
  - lib/hoodoo/services/discovery/discoverers/by_convention.rb
353
366
  - lib/hoodoo/services/discovery/discoverers/by_drb/by_drb.rb
354
367
  - lib/hoodoo/services/discovery/discoverers/by_drb/drb_server.rb
355
368
  - lib/hoodoo/services/discovery/discoverers/by_drb/drb_server_start.rb
369
+ - lib/hoodoo/services/discovery/discoverers/by_flux.rb
356
370
  - lib/hoodoo/services/discovery/discovery.rb
357
371
  - lib/hoodoo/services/discovery/results/for_amqp.rb
358
372
  - lib/hoodoo/services/discovery/results/for_http.rb
@@ -393,7 +407,6 @@ files:
393
407
  - spec/active/active_record/translated_spec.rb
394
408
  - spec/active/active_record/uuid_spec.rb
395
409
  - spec/active/active_record/writer_spec.rb
396
- - spec/alchemy/alchemy-amq.rb
397
410
  - spec/client/augmented_array_spec.rb
398
411
  - spec/client/augmented_base_spec.rb
399
412
  - spec/client/augmented_hash_spec.rb
@@ -446,10 +459,10 @@ files:
446
459
  - spec/presenters/types/text_spec.rb
447
460
  - spec/presenters/types/uuid_spec.rb
448
461
  - spec/presenters/walk_spec.rb
449
- - spec/services/discovery/discoverers/by_consul_spec.rb
450
462
  - spec/services/discovery/discoverers/by_convention_spec.rb
451
463
  - spec/services/discovery/discoverers/by_drb/by_drb_spec.rb
452
464
  - spec/services/discovery/discoverers/by_drb/drb_server_spec.rb
465
+ - spec/services/discovery/discoverers/by_flux_spec.rb
453
466
  - spec/services/discovery/discovery_spec.rb
454
467
  - spec/services/discovery/results/for_amqp_spec.rb
455
468
  - spec/services/discovery/results/for_http_spec.rb
@@ -522,7 +535,6 @@ test_files:
522
535
  - spec/active/active_record/translated_spec.rb
523
536
  - spec/active/active_record/uuid_spec.rb
524
537
  - spec/active/active_record/writer_spec.rb
525
- - spec/alchemy/alchemy-amq.rb
526
538
  - spec/client/augmented_array_spec.rb
527
539
  - spec/client/augmented_base_spec.rb
528
540
  - spec/client/augmented_hash_spec.rb
@@ -575,10 +587,10 @@ test_files:
575
587
  - spec/presenters/types/text_spec.rb
576
588
  - spec/presenters/types/uuid_spec.rb
577
589
  - spec/presenters/walk_spec.rb
578
- - spec/services/discovery/discoverers/by_consul_spec.rb
579
590
  - spec/services/discovery/discoverers/by_convention_spec.rb
580
591
  - spec/services/discovery/discoverers/by_drb/by_drb_spec.rb
581
592
  - spec/services/discovery/discoverers/by_drb/drb_server_spec.rb
593
+ - spec/services/discovery/discoverers/by_flux_spec.rb
582
594
  - spec/services/discovery/discovery_spec.rb
583
595
  - spec/services/discovery/results/for_amqp_spec.rb
584
596
  - spec/services/discovery/results/for_http_spec.rb
@@ -1,66 +0,0 @@
1
- ########################################################################
2
- # File:: by_consul.rb
3
- # (C):: Loyalty New Zealand 2015
4
- #
5
- # Purpose:: Discover resource endpoint locations via a registry held in
6
- # Consul. For AMQP-based endpoints; maps paths to queue names.
7
- # PLACEHOLDER: NOT YET IMPLEMENTED.
8
- # ----------------------------------------------------------------------
9
- # 03-Mar-2015 (ADH): Created.
10
- ########################################################################
11
-
12
- module Hoodoo
13
- module Services
14
- class Discovery # Just used as a namespace here
15
-
16
- # Discover resource endpoint locations via a registry held in
17
- # Consul. For AMQP-based endpoints; maps paths to queue names.
18
- #
19
- class ByConsul < Hoodoo::Services::Discovery
20
-
21
- protected
22
-
23
- # Announce the location of an instance to Consul.
24
- #
25
- # Call via Hoodoo::Services::Discovery::Base#announce.
26
- #
27
- # TODO: NOT YET IMPLEMENTED. Placeholder only.
28
- #
29
- # +resource+:: Passed to #discover_remote.
30
- # +version+:: Passed to #discover_remote.
31
- # +options+:: Ignored. TODO: Queue name, equivalent path.
32
- #
33
- def announce_remote( resource, version, options = {} )
34
- return discover_remote( resource, version ) # TODO: Replace
35
- end
36
-
37
- # Discover the location of an instance using Consul.
38
- #
39
- # TODO: This currently doesn't use Consul at all! It has a
40
- # TODO: hard-coded mapping.
41
- #
42
- # Returns a Hoodoo::Services::Discovery::ForAMQP instance if
43
- # the endpoint is found, else +nil+.
44
- #
45
- # Call via Hoodoo::Services::Discovery::Base#announce.
46
- #
47
- # +resource+:: Passed to #discover_remote.
48
- # +version+:: Passed to #discover_remote.
49
- #
50
- def discover_remote( resource, version )
51
-
52
- queue = "service.#{ resource.to_s.downcase }"
53
- path = "/v#{ version }/#{ resource.to_s.downcase.pluralize }"
54
-
55
- return Hoodoo::Services::Discovery::ForAMQP.new(
56
- resource: resource,
57
- version: version,
58
- queue_name: queue,
59
- equivalent_path: path
60
- )
61
- end
62
-
63
- end
64
- end
65
- end
66
- end