Finished routing, simple website now works yay
This commit is contained in:
parent
12653f6f48
commit
7a112697ec
11 changed files with 148 additions and 15 deletions
57
lib/tcp_server.rb
Normal file
57
lib/tcp_server.rb
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue