class Rack::Runtime
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.
Constants
- FORMAT_STRING
Public Class Methods
new(app, name = nil)
click to toggle source
# File lib/rack/runtime.rb, line 9 def initialize(app, name = nil) @app = app @header_name = "X-Runtime" @header_name << "-#{name}" if name end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/runtime.rb, line 16 def call(env) start_time = clock_time status, headers, body = @app.call(env) request_time = clock_time - start_time if !headers.has_key?(@header_name) headers[@header_name] = FORMAT_STRING % request_time end [status, headers, body] end
Private Instance Methods
clock_time()
click to toggle source
# File lib/rack/runtime.rb, line 31 def clock_time Process.clock_gettime(Process::CLOCK_MONOTONIC) end