class Reifier::Response
Attributes
body[RW]
headers[RW]
protocol[RW]
status[RW]
Public Class Methods
new(socket)
click to toggle source
# File lib/reifier/response.rb, line 5 def initialize(socket) @socket = socket @response = '' end
Public Instance Methods
<<(rack_return)
click to toggle source
# File lib/reifier/response.rb, line 19 def <<(rack_return) @status = rack_return[0] @headers = rack_return[1] @body = rack_return[2] end
handle()
click to toggle source
# File lib/reifier/response.rb, line 10 def handle handle_request_line handle_headers handle_body @socket.write @response @socket.close end
Private Instance Methods
handle_body()
click to toggle source
# File lib/reifier/response.rb, line 39 def handle_body @body.each do |chunk| @response << chunk end @response << CRLF ensure @body.close if @body.respond_to? :close end
handle_headers()
click to toggle source
# File lib/reifier/response.rb, line 31 def handle_headers @headers.each do |k, v| @response << "#{k}: #{v}" + CRLF end @response << 'Connection: close' + CRLF @response << CRLF end
handle_request_line()
click to toggle source
# File lib/reifier/response.rb, line 27 def handle_request_line @response << "#{@protocol} #{@status} #{HTTP_STATUS_CODES[@status]}" + CRLF end