Module: Rack::Promises

Defined in:
lib/rack/promises.rb,
lib/rack/promises/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object

Raises:

  • (NoPromiseCallError)


3
4
5
6
7
8
9
10
11
12
13
# File 'lib/rack/promises.rb', line 3

def call(env)
  raise NoPromiseCallError unless defined?(pcall)
  result = pcall(env)
  if result.is_a?(EventMachine::Q::Promise)
    result.then do |return_value|
      env['async.callback'].call(return_value)
    end
    throw :async
  end
  return result
end