class Navigable::Server::Request

Constants

PARSED_BODY
ROUTER_PARAMS

Attributes

env[R]

Public Class Methods

new(env = nil) click to toggle source
# File lib/navigable/server/request.rb, line 11
def initialize(env = nil)
  @env = env
end

Public Instance Methods

headers() click to toggle source
# File lib/navigable/server/request.rb, line 15
def headers
  @headers ||= env ? {
    accept_media_types: accept_media_types,
    preferred_media_type: preferred_media_type
  } : {}
end
params() click to toggle source
# File lib/navigable/server/request.rb, line 22
def params
  @params ||= env ? form_params.merge!(body_params).merge!(url_params) : {}
end

Private Instance Methods

accept_media_types() click to toggle source
# File lib/navigable/server/request.rb, line 28
def accept_media_types
  @accept_media_types ||= rack_request.accept_media_types
end
body() click to toggle source
# File lib/navigable/server/request.rb, line 48
def body
  @body ||= rack_request.body.read.tap { rack_request.body.rewind }
end
body_params() click to toggle source
# File lib/navigable/server/request.rb, line 40
def body_params
  symbolize_keys(parsed_body || {})
end
form_params() click to toggle source
# File lib/navigable/server/request.rb, line 36
def form_params
  symbolize_keys(rack_request.params || {})
end
media_type() click to toggle source
# File lib/navigable/server/request.rb, line 52
def media_type
  rack_request.media_type
end
parsed_body() click to toggle source
# File lib/navigable/server/request.rb, line 44
def parsed_body
  Parsers::Factory.build(media_type: media_type).parse(body)
end
preferred_media_type() click to toggle source
# File lib/navigable/server/request.rb, line 32
def preferred_media_type
  accept_media_types.first
end
rack_request() click to toggle source
# File lib/navigable/server/request.rb, line 64
def rack_request
  @rack_request ||= Rack::Request.new(env)
end
symbolize_keys(hash) click to toggle source
# File lib/navigable/server/request.rb, line 60
def symbolize_keys(hash)
  hash.each_with_object({}) { |(key, value), obj| obj[key.to_sym] = value }
end
url_params() click to toggle source
# File lib/navigable/server/request.rb, line 56
def url_params
  env[ROUTER_PARAMS] || {}
end