Class: SafeRequestTimeout::RackMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/safe_request_timeout/rack_middleware.rb

Overview

Rack middleware that adds a timeout block to all requests.

Instance Method Summary collapse

Constructor Details

#initialize(app, timeout = nil) ⇒ RackMiddleware

Returns a new instance of RackMiddleware.

Parameters:

  • app (Object)

    The Rack application to wrap.

  • timeout (Integer, Proc, nil) (defaults to: nil)

    The timeout in seconds.



8
9
10
11
12
# File 'lib/safe_request_timeout/rack_middleware.rb', line 8

def initialize(app, timeout = nil)
  @app = app
  @timeout = timeout
  @timeout_block = true if timeout.is_a?(Proc) && timeout.arity == 1
end

Instance Method Details

#call(env) ⇒ Object



14
15
16
17
18
# File 'lib/safe_request_timeout/rack_middleware.rb', line 14

def call(env)
  SafeRequestTimeout.timeout(@timeout_block ? @timeout.call(env) : @timeout) do
    @app.call(env)
  end
end