Sha256: f57f2a499ad2531b060f7775287746f43d5f941b21130d055be572e592a701d0

Contents?: true

Size: 636 Bytes

Versions: 6

Compression:

Stored size: 636 Bytes

Contents

# frozen_string_literal: true

require 'rack'
require 'securerandom'

module Modern
  class Request < Rack::Request
    # rubocop:disable Style/MutableConstant
    LOCAL_REQUEST_STORE = {}
    # rubocop:enable Style/MutableConstant

    attr_reader :logger

    def initialize(env, logger)
      super(env)

      env["HTTP_X_REQUEST_ID"] ||= SecureRandom.uuid

      @logger = logger.child(request_id: request_id)
    end

    def request_id
      env["HTTP_X_REQUEST_ID"]
    end

    def local_store
      LOCAL_REQUEST_STORE[request_id] ||= {}
    end

    def cleanup
      LOCAL_REQUEST_STORE.delete(request_id)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
modern-0.5.0 lib/modern/request.rb
modern-0.4.6 lib/modern/request.rb
modern-0.4.5 lib/modern/request.rb
modern-0.4.4 lib/modern/request.rb
modern-0.4.3 lib/modern/request.rb
modern-0.4.2 lib/modern/request.rb