class IdempotentRequest::Request

Attributes

request[R]

Public Class Methods

new(env, config = {}) click to toggle source
# File lib/idempotent-request/request.rb, line 5
def initialize(env, config = {})
  @request = Rack::Request.new(env)
  @header_name = config.fetch(:header_key, 'HTTP_IDEMPOTENCY_KEY')
end

Public Instance Methods

key() click to toggle source
# File lib/idempotent-request/request.rb, line 10
def key
  request.env[header_name]
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/idempotent-request/request.rb, line 14
def method_missing(method, *args)
  if request.respond_to?(method)
    request.send(method, *args)
  else
    super
  end
end

Private Instance Methods

header_name() click to toggle source
# File lib/idempotent-request/request.rb, line 24
def header_name
  key = @header_name.to_s
                    .upcase
                    .tr('-', '_')

  key.start_with?('HTTP_') ? key : "HTTP_#{key}"
end