class WabSarvar::Request
Attributes
body[R]
headers[R]
method[R]
params[R]
path[R]
version[R]
Public Class Methods
new(request = "")
click to toggle source
# File lib/wab_sarvar/request.rb, line 7 def initialize(request = "") parse(request) end
Public Instance Methods
add_body(line)
click to toggle source
# File lib/wab_sarvar/request.rb, line 33 def add_body(line) @body += line end
add_header(header, value)
click to toggle source
# File lib/wab_sarvar/request.rb, line 37 def add_header(header, value) header = normalize(header) @headers[header] = value end
normalize(header)
click to toggle source
# File lib/wab_sarvar/request.rb, line 42 def normalize(header) header.gsub(":", "").downcase.to_sym end
parse(request)
click to toggle source
# File lib/wab_sarvar/request.rb, line 11 def parse(request) @method, @path, @version = request.lines[0].split @headers = {} @body = '' query_string = @path.split('?')[1].to_s @params = CGI::parse(query_string) mode = :headers request.lines[1..-1].each do |line| next mode = :body if line == "\r\n" if mode == :headers header, value = line.split add_header(header, value) else add_body(line) end end end