Module: RequestQueue
- Defined in:
- lib/request_queue.rb,
lib/request_queue/queue.rb,
lib/request_queue/version.rb,
lib/request_queue/fake_queue.rb,
lib/request_queue/middleware.rb,
lib/request_queue/inline_queue.rb
Defined Under Namespace
Classes: FakeQueue, InlineQueue, Middleware, MissingQueueError, Queue
Constant Summary
collapse
- BACKENDS =
{
inline: RequestQueue::InlineQueue,
fake: RequestQueue::FakeQueue,
default: RequestQueue::Queue
}
- VERSION =
'0.4.0'
Class Method Summary
collapse
Class Method Details
.enqueue(message) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/request_queue.rb', line 27
def enqueue(message)
if queue.nil?
raise MissingQueueError, 'You need to wrap this call in RequestQueue.process {}'
end
queue << message
end
|
.process(backend = :default) ⇒ Object
35
36
37
38
39
40
41
42
43
|
# File 'lib/request_queue.rb', line 35
def process(backend = :default)
original_queue = self.queue
self.queue = BACKENDS.fetch(backend).new
result = yield if block_given?
queue.process unless queue.nil?
result
ensure
self.queue = original_queue
end
|
.queue ⇒ Object
23
24
25
|
# File 'lib/request_queue.rb', line 23
def queue
RequestStore.store[:request_queue]
end
|
.queue=(value) ⇒ Object
19
20
21
|
# File 'lib/request_queue.rb', line 19
def queue=(value)
RequestStore.store[:request_queue] = value
end
|