Class: FutureProof::FutureQueue

Inherits:
Queue
  • Object
show all
Includes:
Exceptionable
Defined in:
lib/future_proof/future_queue.rb

Instance Method Summary collapse

Constructor Details

#initializeFutureQueue

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

#popObject



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

#valuesObject



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