require "http/server" require "./config" require "./model" require "./blog-handler" module Guff class Server def self.run(model : Model, config : Config) new(model, config).run end def initialize(@model : Model, @config : Config) # create server @server = HTTP::Server.new( config["host"], config["port"].to_i, get_handlers(model, config) ) do |context| context.response.puts "asdf" end end def run puts "listening on %s:%s" % %w{host port}.map { |k| @config[k] } @server.listen end private def get_handlers( model : Model, config : Config ) : Array(HTTP::Handler) @handlers ||= [ HTTP::ErrorHandler.new, HTTP::LogHandler.new, HTTP::DeflateHandler.new, BlogHandler.new(model, config), SlugHandler.new(model, config), HTTP::StaticFileHandler.new(config["public"]), ] end end end