module QNA::RequestInfoMethods

Public Instance Methods

connection() click to toggle source
# File lib/qna/request_info.rb, line 12
def connection
  @headers['connection']
end
forwarded_for() click to toggle source
# File lib/qna/request_info.rb, line 61
def forwarded_for
  @headers['x-forwarded-for']
end
host() click to toggle source
# File lib/qna/request_info.rb, line 8
def host
  @headers['host']
end
method() click to toggle source
# File lib/qna/request_info.rb, line 24
def method
  @method ||= @headers[':method'].downcase
end
path() click to toggle source
# File lib/qna/request_info.rb, line 36
def path
  @path ||= uri.path
end
protocol() click to toggle source
# File lib/qna/request_info.rb, line 20
def protocol
  @protocol ||= @adapter.protocol
end
query() click to toggle source
# File lib/qna/request_info.rb, line 44
def query
  return @query if @query
  
  @query = (q = uri.query) ? split_query_string(q) : {}
end
query_string() click to toggle source
# File lib/qna/request_info.rb, line 40
def query_string
  @query_string ||= uri.query
end
request_id() click to toggle source
# File lib/qna/request_info.rb, line 57
def request_id
  @headers['x-request-id']
end
scheme() click to toggle source
# File lib/qna/request_info.rb, line 28
def scheme
  @scheme ||= @headers[':scheme']
end
split_query_string(query) click to toggle source
# File lib/qna/request_info.rb, line 50
def split_query_string(query)
  query.split('&').each_with_object({}) do |kv, h|
    k, v = kv.split('=')
    h[k.to_sym] = URI.decode_www_form_component(v)
  end
end
upgrade_protocol() click to toggle source
# File lib/qna/request_info.rb, line 16
def upgrade_protocol
  connection == 'upgrade' && @headers['upgrade']&.downcase
end
uri() click to toggle source
# File lib/qna/request_info.rb, line 32
def uri
  @uri ||= URI.parse(@headers[':path'] || '')
end