module Clayoven::Httpd

The entry point for clayoven httpd

Run a simple webrick http server to test on localhost:8000

Public Class Methods

start() click to toggle source

Start the server, and shut it down on :INT

# File lib/clayoven/httpd.rb, line 10
def self.start
  port = 8000
  callback = proc do |req, res|
    # A couple of URL rewriting rules; simple stuff
    if %r{^/$} =~ req.path_info
      res.set_redirect WEBrick::HTTPStatus::Found, 'index.html'
    elsif /^(?<uri>[^.]+)$/ =~ req.path_info
      res.set_redirect WEBrick::HTTPStatus::Found, "#{URI.parse(uri)}.html"
    end
  end

  server = WEBrick::HTTPServer.new(Port: port,
                                   RequestCallback: callback,
                                   DocumentRoot: Dir.pwd)

  puts "[#{'HTTP'.green}]: Serving at: http://localhost:#{port}"

  trap(:INT) { server.shutdown }
  server.start
end