class Adrian::ArrayQueue
Public Class Methods
new(array = [], options = {})
click to toggle source
Calls superclass method
Adrian::Queue::new
# File lib/adrian/array_queue.rb, line 5 def initialize(array = [], options = {}) super(options) @array = array.map { |item| wrap_item(item) } @mutex = Mutex.new end
Public Instance Methods
length()
click to toggle source
# File lib/adrian/array_queue.rb, line 21 def length @mutex.synchronize { @array.size } end
pop_item()
click to toggle source
# File lib/adrian/array_queue.rb, line 11 def pop_item @mutex.synchronize { @array.shift } end
push_item(item)
click to toggle source
# File lib/adrian/array_queue.rb, line 15 def push_item(item) item = wrap_item(item) @mutex.synchronize { @array << item } self end
Protected Instance Methods
wrap_item(item)
click to toggle source
# File lib/adrian/array_queue.rb, line 27 def wrap_item(item) item.is_a?(QueueItem) ? item : QueueItem.new(item) end