class Adrian::Queue

Public Class Methods

new(options = {}) click to toggle source
# File lib/adrian/queue.rb, line 13
def initialize(options = {})
  @options = options
end

Public Instance Methods

length() click to toggle source
# File lib/adrian/queue.rb, line 47
def length
  raise "#{self.class.name}#length is not defined"
end
max_age() click to toggle source
# File lib/adrian/queue.rb, line 35
def max_age
  @max_age ||= @options[:max_age]
end
pop() click to toggle source
# File lib/adrian/queue.rb, line 17
def pop
  item = pop_item
  item.queue = self if item
  verify_age!(item)
end
pop_item() click to toggle source
# File lib/adrian/queue.rb, line 39
def pop_item
  raise "#{self.class.name}#pop_item is not defined"
end
push(item) click to toggle source
# File lib/adrian/queue.rb, line 23
def push(item)
  push_item(item)
end
push_item(item) click to toggle source
# File lib/adrian/queue.rb, line 43
def push_item(item)
  raise "#{self.class.name}#push_item is not defined"
end
verify_age!(item) click to toggle source
# File lib/adrian/queue.rb, line 27
def verify_age!(item)
  if item && max_age && item.age > max_age
    raise ItemTooOldError.new(item, self)
  end

  item
end