Sha256: f96dfa1efebf57c843bb4b4a68db406f4476a35547a392a876e3a0804ce5b626
Contents?: true
Size: 516 Bytes
Versions: 2
Compression:
Stored size: 516 Bytes
Contents
require 'timeout' module RestCore class Timeout def self.members; [:timeout]; end include Middleware def call env, &k return app.call(env, &k) if env[DRY] || timeout(env) == 0 process(env, &k) end 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 def timeout_error ::Timeout::Error.new('execution expired') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rest-core-4.0.1 | lib/rest-core/middleware/timeout.rb |
rest-core-4.0.0 | lib/rest-core/middleware/timeout.rb |