Class: Rack::Runtime
Relationships & Source Files | |
Inherits: | Object |
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
-
FORMAT_STRING =
Internal use only
# File 'lib/rack/runtime.rb', line 13"%0.6f"
-
HEADER_NAME =
Internal use only
# File 'lib/rack/runtime.rb', line 14"x-runtime"
Class Method Summary
- .new(app, name = nil) ⇒ Runtime constructor
Instance Method Summary
Constructor Details
.new(app, name = nil) ⇒ Runtime
# 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)
[ GitHub ]# 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