class Rack::RequestTracker::Middleware::Store

Public Class Methods

new(app) click to toggle source
# File lib/rack/request_tracker/middleware/store.rb, line 3
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/request_tracker/middleware/store.rb, line 7
def call(env)
  request = ActionDispatch::Request.new(env)

  Rack::RequestTracker.request_id    = request.request_id
  Rack::RequestTracker.forwarded_for = first_forward(request.x_forwarded_for) || request.remote_ip
  Rack::RequestTracker.request_uid   = request.headers['X-REQUEST-UID']
  Rack::RequestTracker.organization  = request.headers['X-ORGANIZATION']
  Rack::RequestTracker.user_agent    = request.headers['X-USER-AGENT']

  @app.call(env)
end

Private Instance Methods

first_forward(forwards) click to toggle source
# File lib/rack/request_tracker/middleware/store.rb, line 21
def first_forward(forwards)
  return unless forwards
  forwards.split(', ').first
end