class Microcon::Request
Attributes
body[R]
headers[R]
params[R]
Public Class Methods
new(env)
click to toggle source
# File lib/microcon/request.rb, line 7 def initialize(env) @env = env @req = Rack::Request.new env parse_body parse_params parse_headers end
Public Instance Methods
to_h()
click to toggle source
# File lib/microcon/request.rb, line 15 def to_h {headers: headers, params: params, body: body} end
Private Instance Methods
parse_body()
click to toggle source
# File lib/microcon/request.rb, line 25 def parse_body body = @req.body.read parsed_body = body.empty? ? {} : Oj.load(body) @body = t(:symbolize_keys)[parsed_body] end
parse_headers()
click to toggle source
# File lib/microcon/request.rb, line 31 def parse_headers # TODO snake case headers? @headers = t(:symbolize_keys)[ @env.select {|k,v| k.start_with? 'HTTP_'} .collect {|key, val| [key.sub(/^HTTP_/, '').downcase, val]} .instance_eval {|hpairs| Hash[hpairs]} ] end
parse_params()
click to toggle source
# File lib/microcon/request.rb, line 38 def parse_params router_params = @env['router.params'] || {} # From Hanami Router @params = t(:symbolize_keys)[@req.params.merge(router_params)] end
t(*args)
click to toggle source
# File lib/microcon/request.rb, line 21 def t(*args) Functions[*args] end