class DispatchRider::QueueServices::Base
Attributes
queue[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 14 def initialize(options = {}) @queue = assign_storage(options.symbolize_keys) end
Public Instance Methods
assign_storage(attrs)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 18 def assign_storage(attrs) raise NotImplementedError end
construct_message_from(item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 54 def construct_message_from(item) raise NotImplementedError end
delete(item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 58 def delete(item) raise NotImplementedError end
empty?()
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 62 def empty? size.zero? end
head()
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 41 def head raw_item = raw_head raw_item && received_message_for(raw_item) end
insert(item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 28 def insert(item) raise NotImplementedError end
pop() { |received| ... }
click to toggle source
If you pass a block into pop it will wrap the deletion of the message with it’s handling
# File lib/dispatch-rider/queue_services/base.rb, line 33 def pop received = head if received yield(received) && delete(received.item) received end end
push(item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 22 def push(item) message = serialize(item) insert(message) message end
raw_head()
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 50 def raw_head raise NotImplementedError end
received_message_for(raw_item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 46 def received_message_for(raw_item) QueueServices::ReceivedMessage.new(construct_message_from(raw_item), raw_item) end
size()
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 66 def size raise NotImplementedError end
Protected Instance Methods
deserialize(item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 76 def deserialize(item) attrs = JSON.parse(item).symbolize_keys DispatchRider::Message.new(attrs) end
serialize(item)
click to toggle source
# File lib/dispatch-rider/queue_services/base.rb, line 72 def serialize(item) item.to_json end