Class: Clowk::Http::TimeoutMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/clowk/http/timeout_middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, logger: nil, open_timeout: nil, read_timeout: nil, write_timeout: nil) ⇒ TimeoutMiddleware

Returns a new instance of TimeoutMiddleware.



6
7
8
9
10
11
12
# File 'lib/clowk/http/timeout_middleware.rb', line 6

def initialize(app, logger: nil, open_timeout: nil, read_timeout: nil, write_timeout: nil, **)
  @app = app
  @logger = logger || LoggerMiddleware::NullLogger.new
  @open_timeout = open_timeout
  @read_timeout = read_timeout
  @write_timeout = write_timeout
end

Instance Method Details

#call(env) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/clowk/http/timeout_middleware.rb', line 14

def call(env)
  env[:timeouts] = {
    open_timeout: env.fetch(:open_timeout, open_timeout),
    read_timeout: env.fetch(:read_timeout, read_timeout),
    write_timeout: env.fetch(:write_timeout, write_timeout)
  }.compact

  logger.info("[Clowk::Http] timeouts=#{env[:timeouts]}") unless env[:timeouts].empty?
  app.call(env)
end