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