class FaradayTimingMiddleware::ResponseTime

Public Instance Methods

call(request_env) click to toggle source
# File lib/faraday_timing_middleware/response_time.rb, line 4
def call(request_env)
  start!

  @app.call(request_env).on_complete do |response_env|
    stop!
    response_env[:response_headers].merge!({ 'X-Faraday-Runtime' => elapsed_time })
  end
end

Private Instance Methods

elapsed_time() click to toggle source
# File lib/faraday_timing_middleware/response_time.rb, line 22
def elapsed_time
  ((Thread.current[:faraday_request_ends_at] - Thread.current[:faraday_request_starts_at]) * 1000).round(2)
end
start!() click to toggle source
# File lib/faraday_timing_middleware/response_time.rb, line 14
def start!
  Thread.current[:faraday_request_starts_at] = Time.now
end
stop!() click to toggle source
# File lib/faraday_timing_middleware/response_time.rb, line 18
def stop!
  Thread.current[:faraday_request_ends_at] = Time.now
end