Module: RequestQueue
- Defined in:
- lib/request_queue.rb,
lib/request_queue/queue.rb,
lib/request_queue/railtie.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, Railtie
Constant Summary
collapse
- BACKENDS =
{
inline: RequestQueue::InlineQueue,
fake: RequestQueue::FakeQueue,
default: RequestQueue::Queue
}
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.backend ⇒ Object
20
21
22
|
# File 'lib/request_queue.rb', line 20
def backend
@backend || BACKENDS[:default]
end
|
.enqueue(message) ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/request_queue.rb', line 36
def enqueue(message)
if queue.nil?
raise MissingQueueError, 'You need to wrap this call in RequestQueue.process {}'
end
queue << message
end
|
.process ⇒ Object
44
45
46
47
48
49
50
|
# File 'lib/request_queue.rb', line 44
def process
self.queue = backend.new
yield if block_given?
queue.process
ensure
self.queue = nil
end
|
.queue ⇒ Object
32
33
34
|
# File 'lib/request_queue.rb', line 32
def queue
RequestStore.store[:request_queue]
end
|
.queue=(value) ⇒ Object
28
29
30
|
# File 'lib/request_queue.rb', line 28
def queue=(value)
RequestStore.store[:request_queue] = value
end
|
.use(type) ⇒ Object
24
25
26
|
# File 'lib/request_queue.rb', line 24
def use(type)
@backend = BACKENDS.fetch(type)
end
|