class Superintendent::Request::Id
Constants
- X_REQUEST_ID
Public Class Methods
new(app)
click to toggle source
# File lib/superintendent/request/id.rb, line 7 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/superintendent/request/id.rb, line 11 def call(env) request_id = make_request_id(env['HTTP_X_REQUEST_ID']) @app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = request_id } end
Private Instance Methods
internal_request_id()
click to toggle source
# File lib/superintendent/request/id.rb, line 26 def internal_request_id "OHM#{SecureRandom.uuid.gsub!('-', '')}" end
make_request_id(request_id)
click to toggle source
# File lib/superintendent/request/id.rb, line 18 def make_request_id(request_id) if request_id && ! request_id.empty? request_id.gsub(/[^\w\-]/, "".freeze)[0..255] else internal_request_id end end