Class: FutureProof::FutureQueue
- Inherits:
-
Queue
- Object
- Queue
- FutureProof::FutureQueue
- Includes:
- Exceptionable
- Defined in:
- lib/future_proof/future_queue.rb
Instance Method Summary collapse
- #[](index) ⇒ Object
-
#initialize ⇒ FutureQueue
constructor
A new instance of FutureQueue.
- #pop ⇒ Object
- #push(*values, &block) ⇒ Object
- #start! ⇒ Object
- #stop! ⇒ Object
- #values ⇒ Object
Constructor Details
#initialize ⇒ FutureQueue
Returns a new instance of FutureQueue.
6 7 8 9 |
# File 'lib/future_proof/future_queue.rb', line 6 def initialize @finished = false super() end |
Instance Method Details
#[](index) ⇒ Object
35 36 37 38 |
# File 'lib/future_proof/future_queue.rb', line 35 def [](index) raise_future_proof_exception unless finished? values[index] end |
#pop ⇒ Object
25 26 27 28 |
# File 'lib/future_proof/future_queue.rb', line 25 def pop raise_future_proof_exception if finished? raise_or_value super end |
#push(*values, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/future_proof/future_queue.rb', line 11 def push(*values, &block) raise_future_proof_exception if finished? value = if block_given? begin block.call(*values) rescue => e e end else values.size == 1 ? values[0] : values end super(value) end |
#start! ⇒ Object
44 45 46 47 |
# File 'lib/future_proof/future_queue.rb', line 44 def start! @values = nil @finished = false end |
#stop! ⇒ Object
40 41 42 |
# File 'lib/future_proof/future_queue.rb', line 40 def stop! @finished = true end |
#values ⇒ Object
30 31 32 33 |
# File 'lib/future_proof/future_queue.rb', line 30 def values raise_future_proof_exception unless finished? @values ||= FutureProof::FutureArray.new(instance_variable_get(:@que).dup) end |