class Xenon::Request

Attributes

unmatched_path[RW]

Public Class Methods

new(rack_req) click to toggle source
# File lib/xenon/request.rb, line 7
def initialize(rack_req)
  @rack_req = rack_req
  @unmatched_path = rack_req.path.freeze
end

Public Instance Methods

allow_response_body?() click to toggle source
# File lib/xenon/request.rb, line 44
def allow_response_body?
  request_method != :head
end
body() click to toggle source
# File lib/xenon/request.rb, line 34
def body
  @rack_req.body
end
copy(changes = {}) click to toggle source
# File lib/xenon/request.rb, line 38
def copy(changes = {})
  r = dup
  changes.each { |k, v| r.instance_variable_set("@#{k}", v.freeze) }
  r
end
form_hash() click to toggle source
# File lib/xenon/request.rb, line 16
def form_hash
  @form_hash ||= @rack_req.POST.with_indifferent_access.freeze
end
header(name) click to toggle source
# File lib/xenon/request.rb, line 25
def header(name)
  snake_name = name.to_s.tr('-', '_').upcase
  value = @rack_req.env['HTTP_' + snake_name] || @rack_req.env[snake_name]
  return nil if value.nil?

  klass = Xenon::Headers.header_class(name)
  klass ? klass.parse(value) : Xenon::Headers::Raw.new(name, value)
end
param_hash() click to toggle source
# File lib/xenon/request.rb, line 20
def param_hash
  puts "GET = #{@rack_req.GET.inspect}"
  @param_hash ||= @rack_req.GET.with_indifferent_access.freeze
end
request_method() click to toggle source
# File lib/xenon/request.rb, line 12
def request_method
  @rack_req.request_method.downcase.to_sym
end