Toppatea/lib/tcp_server.rb

57 lines
No EOL
1.4 KiB
Ruby

require 'socket'
require_relative 'request'
require_relative 'route'
class HTTPServer
def initialize(port)
@port = port
end
def start
server = TCPServer.new(@port)
puts "Listening on #{@port}"
router = Router.new
router.add_route("GET",/\/grillkorv\/\d/) do |id, senap|
puts "woot #{senap}"
end
router.add_route("GET","/favicon.ico")
while session = server.accept
data = ""
while line = session.gets and line !~ /^\s*$/
data += line
end
puts "RECEIVED REQUEST"
puts "-" * 40
puts data
puts "-" * 40
request = Request.new(data)
pp request
routeReturn = router.match_route(request)
if routeReturn == 200
html = "<h1>Hello, World!</h1>"
status = 200
elsif routeReturn == 404
html = "<h1>Not found!</h1>"
status = 404
end
#Sen kolla om resursen (filen finns)
# Nedanstående bör göras i er Response-klass
session.print "HTTP/1.1 #{status}\r\n"
session.print "Content-Type: text/html\r\n"
session.print "\r\n"
session.print html
session.close
end
end
end