def parse_line(input)
for line in input
line.chomp!("\n")
line.chomp!("\r")
next if line.empty?
method, uri, version = line.split(/\s+/, 3)
if (method.nil? || method.empty? || uri.nil? || uri.empty?) then
raise ParseError, "failed to parse a request line: #{line.inspect}"
end
@method = method
self.uri = uri
if (version) then
if (version =~ %"^HTTP/\d+\.\d+$") then
@version = version
else
raise ParseError, "invalid HTTP version format: #{line.inspect}"
end
else
@version = 'HTTP/0.9'
end
return
end
raise ParseError, 'closed input stream'
end