Class: AppHttp

Inherits:
Object
  • Object
show all
Defined in:
lib/apphttp.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, host: '0.0.0.0', port: '9232', debug: false) ⇒ AppHttp



13
14
15
# File 'lib/apphttp.rb', line 13

def initialize(app, host: '0.0.0.0', port: '9232', debug: false)
  @app, @host, @port, @debug = app, host, port, debug
end

Instance Method Details

#startObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/apphttp.rb', line 17

def start

  server = TCPServer.new(@host, @port)

  while (session = server.accept)

    raw_request = session.gets
    request = raw_request[/.[^\s]+(?= HTTP\/1\.\d)/].strip

    result,content_type = get(request)
    puts 'content_type: ' + content_type.inspect if @debug

    if result then
      response = result
    else
      response = "404: page not found"
      content_type = 'text/plain'
    end

    session.print "HTTP/1.1 200 OK\r\nContent-type: #{content_type}\r\n" + 
              "Content-Length: #{response.bytesize}\r\n" +
              "Connection: close\r\n"
    session.print "\r\n"
    session.print response
    session.close
  end
end