class SimpleServer
Constants
- LOG
- WEB_ROOT
Attributes
level[R]
output[R]
server[R]
Public Class Methods
new(host='localhost', port=2345)
click to toggle source
# File lib/simple_server.rb, line 14 def initialize(host='localhost', port=2345) @server = TCPServer.new(host, port) LOG.debug("Server is set up.") end
Public Instance Methods
clean_path(path)
click to toggle source
# File lib/simple_server.rb, line 19 def clean_path(path) clean = [] parts = path.split("/") parts.each do |part| next if part.empty? || part == '.' part == '..' ? clean.pop : clean << part end File.join(WEB_ROOT, *clean) end
run()
click to toggle source
# File lib/simple_server.rb, line 34 def run server_info begin loop do Thread.start(server.accept) do |socket| LOG.debug("Accepted socket: #{socket.inspect}") request = Request.parse(socket.gets) LOG.debug("Incoming request: #{request.inspect}") path = clean_path(request.resource) path = File.join(path, 'index.html') if File.directory?(path) LOG.debug("Requested path: #{path.inspect}") response = Response.build(path) socket.print response.header socket.print response.stream LOG.info(response.header) socket.close end end rescue Interrupt puts "\nExiting...Thank you for using this super awesome server." end end
server_info()
click to toggle source
# File lib/simple_server.rb, line 30 def server_info puts "#{'-' * 30}\nWelcome to the Simple Server.\nPlease use CONTROL-C to exit.\n#{'-' * 30}\n\n" end