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