Class: Rack::Runtime
- Inherits:
-
Object
- Object
- Rack::Runtime
- 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
- #call(env) ⇒ Object
-
#initialize(app, name = nil) ⇒ Runtime
constructor
A new instance of Runtime.
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 |