class Troy::Server

def process

def process
  path = request.path[%r{^/(.*?)/?$}, 1]
  path = "index" if path == ""
  path = root.join(path)
  if request.path != "/" && request.path.end_with?("/")
    redirect normalized_path
  elsif (_path = Pathname.new("#{path}.html")).file?
    render(200, "text/html; charset=utf-8", _path)
  elsif (_path = Pathname.new("#{path}.xml")).file?
    render(200, "text/xml; charset=utf-8", _path)
  elsif path.file?
    render(200, Rack::Mime.mime_type(path.extname, "text/plain"), path)
  else
    render(404, "text/html; charset=utf-8", root.join("404.html"))
  end
rescue Exception => error
  render(500, "text/html; charset=utf-8", root.join("500.html"))
end