class RestCore::Timeout
Public Class Methods
members()
click to toggle source
# File lib/rest-core/middleware/timeout.rb, line 6 def self.members; [:timeout]; end
Public Instance Methods
call(env, &k)
click to toggle source
# File lib/rest-core/middleware/timeout.rb, line 9 def call env, &k return app.call(env, &k) if env[DRY] || timeout(env) == 0 process(env, &k) end
process(env, &k)
click to toggle source
# File lib/rest-core/middleware/timeout.rb, line 14 def process env, &k timer = PromisePool::Timer.new(timeout(env), timeout_error) app.call(env.merge(TIMER => timer), &k) rescue Exception timer.cancel raise end
timeout_error()
click to toggle source
# File lib/rest-core/middleware/timeout.rb, line 22 def timeout_error ::Timeout::Error.new('execution expired') end