Class: Bricolage::TaskQueue
- Inherits:
-
Object
- Object
- Bricolage::TaskQueue
- Defined in:
- lib/bricolage/taskqueue.rb
Direct Known Subclasses
Instance Method Summary collapse
- #consume_each ⇒ Object
- #deq ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #enq(task) ⇒ Object
-
#initialize ⇒ TaskQueue
constructor
A new instance of TaskQueue.
- #lock ⇒ Object
- #locked? ⇒ Boolean
- #next ⇒ Object
- #queued? ⇒ Boolean
- #restore ⇒ Object
- #save ⇒ Object
- #size ⇒ Object
- #unlock ⇒ Object
- #unlock_help ⇒ Object
Constructor Details
#initialize ⇒ TaskQueue
Returns a new instance of TaskQueue.
8 9 10 |
# File 'lib/bricolage/taskqueue.rb', line 8 def initialize @queue = [] end |
Instance Method Details
#consume_each ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/bricolage/taskqueue.rb', line 28 def consume_each lock save while task = self.next yield task deq end ensure unlock end |
#deq ⇒ Object
47 48 49 50 51 |
# File 'lib/bricolage/taskqueue.rb', line 47 def deq task = @queue.shift save task end |
#each(&block) ⇒ Object
24 25 26 |
# File 'lib/bricolage/taskqueue.rb', line 24 def each(&block) @queue.each(&block) end |
#empty? ⇒ Boolean
12 13 14 |
# File 'lib/bricolage/taskqueue.rb', line 12 def empty? @queue.empty? end |
#enq(task) ⇒ Object
39 40 41 |
# File 'lib/bricolage/taskqueue.rb', line 39 def enq(task) @queue.push task end |
#lock ⇒ Object
63 64 |
# File 'lib/bricolage/taskqueue.rb', line 63 def lock end |
#locked? ⇒ Boolean
59 60 61 |
# File 'lib/bricolage/taskqueue.rb', line 59 def locked? false end |
#next ⇒ Object
43 44 45 |
# File 'lib/bricolage/taskqueue.rb', line 43 def next @queue.first end |
#queued? ⇒ Boolean
20 21 22 |
# File 'lib/bricolage/taskqueue.rb', line 20 def queued? not empty? end |
#restore ⇒ Object
56 57 |
# File 'lib/bricolage/taskqueue.rb', line 56 def restore end |
#save ⇒ Object
53 54 |
# File 'lib/bricolage/taskqueue.rb', line 53 def save end |
#size ⇒ Object
16 17 18 |
# File 'lib/bricolage/taskqueue.rb', line 16 def size @queue.size end |
#unlock ⇒ Object
66 67 |
# File 'lib/bricolage/taskqueue.rb', line 66 def unlock end |
#unlock_help ⇒ Object
69 70 71 |
# File 'lib/bricolage/taskqueue.rb', line 69 def unlock_help "[MUST NOT HAPPEN] this message must not be shown" end |