class Concurrent::Promises::ResolvableFuture

A Future which can be resolved by user.

Public Instance Methods

evaluate_to(*args, &block) click to toggle source

Evaluates the block and sets its result as future's value fulfilling, if the block raises an exception the future rejects with it. @yield [*args] to the block. @yieldreturn [Object] value @return [self]

# File lib/concurrent/promises.rb, line 1275
def evaluate_to(*args, &block)
  promise.evaluate_to(*args, block)
end
evaluate_to!(*args, &block) click to toggle source

Evaluates the block and sets its result as future's value fulfilling, if the block raises an exception the future rejects with it. @yield [*args] to the block. @yieldreturn [Object] value @return [self] @raise [Exception] also raise reason on rejection.

# File lib/concurrent/promises.rb, line 1285
def evaluate_to!(*args, &block)
  promise.evaluate_to(*args, block).wait!
end
fulfill(value, raise_on_reassign = true) click to toggle source

Makes the future fulfilled with `value`, which triggers all dependent futures.

@!macro promise.param.raise_on_reassign

# File lib/concurrent/promises.rb, line 1258
def fulfill(value, raise_on_reassign = true)
  promise.fulfill(value, raise_on_reassign)
end
reject(reason, raise_on_reassign = true) click to toggle source

Makes the future rejected with `reason`, which triggers all dependent futures.

@!macro promise.param.raise_on_reassign

# File lib/concurrent/promises.rb, line 1266
def reject(reason, raise_on_reassign = true)
  promise.reject(reason, raise_on_reassign)
end
resolve(fulfilled = true, value = nil, reason = nil, raise_on_reassign = true) click to toggle source

Makes the future resolved with result of triplet `fulfilled?`, `value`, `reason`, which triggers all dependent futures.

@!macro promise.param.raise_on_reassign

# File lib/concurrent/promises.rb, line 1250
def resolve(fulfilled = true, value = nil, reason = nil, raise_on_reassign = true)
  resolve_with(fulfilled ? Fulfilled.new(value) : Rejected.new(reason), raise_on_reassign)
end
with_hidden_resolvable() click to toggle source

Creates new future wrapping receiver, effectively hiding the resolve method and similar.

@return [Future]

# File lib/concurrent/promises.rb, line 1292
def with_hidden_resolvable
  @with_hidden_resolvable ||= FutureWrapperPromise.new_blocked_by1(self, @DefaultExecutor).future
end