Class: Adrian::Queue
- Inherits:
-
Object
show all
- Defined in:
- lib/adrian/queue.rb
Defined Under Namespace
Classes: ItemTooOldError
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Queue
Returns a new instance of Queue.
13
14
15
|
# File 'lib/adrian/queue.rb', line 13
def initialize(options = {})
@options = options
end
|
Instance Method Details
#length ⇒ Object
47
48
49
|
# File 'lib/adrian/queue.rb', line 47
def length
raise "#{self.class.name}#length is not defined"
end
|
#max_age ⇒ Object
35
36
37
|
# File 'lib/adrian/queue.rb', line 35
def max_age
@max_age ||= @options[:max_age]
end
|
#pop ⇒ Object
17
18
19
20
21
|
# File 'lib/adrian/queue.rb', line 17
def pop
item = pop_item
item.queue = self if item
verify_age!(item)
end
|
#pop_item ⇒ Object
39
40
41
|
# File 'lib/adrian/queue.rb', line 39
def pop_item
raise "#{self.class.name}#pop_item is not defined"
end
|
#push(item) ⇒ Object
23
24
25
|
# File 'lib/adrian/queue.rb', line 23
def push(item)
push_item(item)
end
|
#push_item(item) ⇒ Object
43
44
45
|
# File 'lib/adrian/queue.rb', line 43
def push_item(item)
raise "#{self.class.name}#push_item is not defined"
end
|
#verify_age!(item) ⇒ Object
27
28
29
30
31
32
33
|
# 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
|