class Makanai::Request
Attributes
env[R]
method[R]
origin_body[R]
params[RW]
query[R]
url[R]
Public Class Methods
new(env)
click to toggle source
Calls superclass method
# File lib/makanai/request.rb, line 12 def initialize(env) super @env = env @url = build_url @origin_body = body&.read @query = parsed_url.query @params = build_params @method = build_method end
Public Instance Methods
root_url()
click to toggle source
# File lib/makanai/request.rb, line 22 def root_url @root_url ||= "#{parsed_url.scheme}://#{parsed_url.host}:#{parsed_url.port}" end
Private Instance Methods
build_method()
click to toggle source
# File lib/makanai/request.rb, line 44 def build_method return 'GET' if env['REQUEST_METHOD'] == 'GET' params&.delete('_method') || 'POST' end
build_params()
click to toggle source
# File lib/makanai/request.rb, line 49 def build_params case env['REQUEST_METHOD'] when 'GET' return Hash[URI.decode_www_form(query)] if query when 'POST' return parsed_body if origin_body end end
build_url()
click to toggle source
# File lib/makanai/request.rb, line 28 def build_url root = "#{env['rack.url_scheme']}://#{env['SERVER_NAME']}" root += ":#{env['SERVER_PORT']}#{env['PATH_INFO']}" env['QUERY_STRING'] ? (root + "?#{env['QUERY_STRING']}") : root end
parsed_body()
click to toggle source
# File lib/makanai/request.rb, line 34 def parsed_body @parsed_body ||= JSON.parse(origin_body) rescue JSON::ParserError @parsed_body ||= origin_body.split('&').map { |param| param.split('=') }.to_h end
parsed_url()
click to toggle source
# File lib/makanai/request.rb, line 40 def parsed_url @parsed_url ||= URI.parse(url) end