Class: Worker::Defer

Inherits:
Object
  • Object
show all
Defined in:
lib/worker.rb

Defined Under Namespace

Classes: ValueError

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Defer

Returns a new instance of Defer.



9
10
11
12
13
14
15
# File 'lib/worker.rb', line 9

def initialize(&block)
  @value = Queue.new

  Thread.new do
    @value.push block.call
  end
end

Instance Method Details

#valueObject



17
18
19
# File 'lib/worker.rb', line 17

def value
  @value.pop
end

#value!Object



21
22
23
24
25
26
27
# File 'lib/worker.rb', line 21

def value!
  if @value.length == 1
    value
  else
    raise ValueError
  end
end