Class: DispatchRider::QueueServices::Base
- Inherits:
-
Object
- Object
- DispatchRider::QueueServices::Base
show all
- Defined in:
- lib/dispatch-rider/queue_services/base.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
12
13
14
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 12
def initialize(options = {})
@queue = assign_storage(options.symbolize_keys)
end
|
Instance Attribute Details
#queue ⇒ Object
Returns the value of attribute queue.
10
11
12
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 10
def queue
@queue
end
|
Instance Method Details
#assign_storage(attrs) ⇒ Object
16
17
18
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 16
def assign_storage(attrs)
raise NotImplementedError
end
|
#construct_message_from(item) ⇒ Object
53
54
55
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 53
def construct_message_from(item)
raise NotImplementedError
end
|
#delete(item) ⇒ Object
57
58
59
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 57
def delete(item)
raise NotImplementedError
end
|
#empty? ⇒ Boolean
61
62
63
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 61
def empty?
size.zero?
end
|
#head ⇒ Object
40
41
42
43
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 40
def head
raw_item = raw_head
raw_item && received_message_for(raw_item)
end
|
#insert(item) ⇒ Object
26
27
28
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 26
def insert(item)
raise NotImplementedError
end
|
#pop(&block) ⇒ Object
If you pass a block into pop it will wrap the deletion of the message with it’s handling
32
33
34
35
36
37
38
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 32
def pop(&block)
received = head
if received
block.call(received) && delete(received.item)
received
end
end
|
#push(item) ⇒ Object
20
21
22
23
24
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 20
def push(item)
message = serialize(item)
insert(message)
message
end
|
#raw_head ⇒ Object
49
50
51
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 49
def raw_head
raise NotImplementedError
end
|
#received_message_for(raw_item) ⇒ Object
45
46
47
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 45
def received_message_for(raw_item)
QueueServices::ReceivedMessage.new(construct_message_from(raw_item), raw_item)
end
|
#size ⇒ Object
65
66
67
|
# File 'lib/dispatch-rider/queue_services/base.rb', line 65
def size
raise NotImplementedError
end
|