Sha256: 0640e6e03f952a6ee17c504e5521094ca5f4d7689d7cf990eae272d1ed4103d8
Contents?: true
Size: 525 Bytes
Versions: 13
Compression:
Stored size: 525 Bytes
Contents
require 'timeout' require 'rest-core/middleware' require 'rest-core/timer' class RestCore::Timeout def self.members; [:timeout]; end include RestCore::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 = 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
Version data entries
13 entries across 13 versions & 1 rubygems