Class: Rack::Runtime

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/runtime.rb

Overview

Sets an “x-runtime” response header, indicating the response time of the request, in seconds

You can put it right before the application to see the processing time, or before all the other middlewares to include time for them, too.

Constant Summary collapse

FORMAT_STRING =

:nodoc:

"%0.6f" 
HEADER_NAME =

:nodoc:

"x-runtime" 

Instance Method Summary collapse

Constructor Details

#initialize(app, name = nil) ⇒ Runtime

Returns a new instance of Runtime.

 16 17 18 19 20
# File 'lib/rack/runtime.rb', line 16 def initialize(app, name = nil) @app = app @header_name = HEADER_NAME @header_name += "-#{name.to_s.downcase}" if name end 

Instance Method Details

#call(env) ⇒ Object

 22 23 24 25 26 27 28 29 30 31 32 33
# File 'lib/rack/runtime.rb', line 22 def call(env) start_time = Utils.clock_time _, headers, _ = response = @app.call(env) request_time = Utils.clock_time - start_time unless headers.key?(@header_name) headers[@header_name] = FORMAT_STRING % request_time end response end