class Escher::Request::RackRequest

Public Class Methods

new(request_env) click to toggle source
Calls superclass method Escher::Request::Base::new
# File lib/escher/request/rack_request.rb, line 5
def initialize(request_env)
  super(request_env)
  @rack_request = request_env
end

Public Instance Methods

body()
Alias for: payload
env() click to toggle source
# File lib/escher/request/rack_request.rb, line 10
def env
  @rack_request.env
end
headers() click to toggle source
# File lib/escher/request/rack_request.rb, line 26
def headers
  @headers ||= get_headers_by_rack_env(@rack_request.env)
end
host() click to toggle source
# File lib/escher/request/rack_request.rb, line 22
def host
  @rack_request.env[::Rack::HTTP_HOST]
end
method() click to toggle source
# File lib/escher/request/rack_request.rb, line 30
def method
  @rack_request.request_method rescue @rack_request.env['REQUEST_METHOD']
end
path() click to toggle source
# File lib/escher/request/rack_request.rb, line 18
def path
  @rack_request.env[::Rack::PATH_INFO]
end
payload() click to toggle source
# File lib/escher/request/rack_request.rb, line 34
def payload
  @payload ||= fetch_payload
end
Also aliased as: body
query_values() click to toggle source
# File lib/escher/request/rack_request.rb, line 40
def query_values
  Addressable::URI.new(:query => request.env['QUERY_STRING']).query_values(Array) or []
end
rack_request() click to toggle source
# File lib/escher/request/rack_request.rb, line 14
def rack_request
  @rack_request
end
set_header(header_name, value) click to toggle source
# File lib/escher/request/rack_request.rb, line 44
def set_header(header_name, value)
end

Protected Instance Methods

fetch_payload() click to toggle source
# File lib/escher/request/rack_request.rb, line 49
def fetch_payload
  rack_input = @rack_request.body

  return rack_input.to_s if rack_input.nil? || rack_input.is_a?(String)

  payload = rack_input.read
  @rack_request.body.rewind
  payload

end