class Promising::Future

Public Class Methods

new(timeout:nil,&block) click to toggle source

Creates a new future.

@yield [] The block to evaluate optimistically. @see Kernel#future

# File lib/promising/future.rb, line 20
def initialize(timeout:nil,&block)
  @promise = Promise.new(timeout:timeout,&block)
  @thread  = ::Thread.new{@promise.__force__}
end

Public Instance Methods

__force__() click to toggle source

The value of the future’s evaluation. Blocks until result available.

@return [Object]

# File lib/promising/future.rb, line 29
def __force__
  @thread.join if @thread
  @promise
end
Also aliased as: force
force()
Alias for: __force__
respond_to?(method, include_all=false) click to toggle source

Does this future support the given method?

@param [Symbol] @return [Boolean]

# File lib/promising/future.rb, line 40
def respond_to?(method, include_all=false)
  :force.equal?(method) || :__force__.equal?(method) || __force__.respond_to?(method, include_all)
end

Private Instance Methods

method_missing(method, *args, &block) click to toggle source
# File lib/promising/future.rb, line 46
def method_missing(method, *args, &block)
  __force__.__send__(method, *args, &block)
end