class Routemaster::Responses::ResponsePromise

Public Class Methods

new(&block) click to toggle source

The ‘block` is expected to return a {Response}

# File lib/routemaster/responses/response_promise.rb, line 12
def initialize(&block)
  @promise = Concurrent::Promise.execute(executor: Pool.current, &block)
end

Public Instance Methods

method_missing(m, *args, &block) click to toggle source
# File lib/routemaster/responses/response_promise.rb, line 32
def method_missing(m, *args, &block)
  value.public_send(m, *args, &block)
end
value() click to toggle source
# File lib/routemaster/responses/response_promise.rb, line 36
def value
  @promise.value.tap do
    raise @promise.reason if @promise.rejected?
  end
end