diff options
| author | Paul Duncan <pabs@pablotron.org> | 2016-03-05 19:12:01 -0500 | 
|---|---|---|
| committer | Paul Duncan <pabs@pablotron.org> | 2016-03-05 19:12:01 -0500 | 
| commit | 17a15f5c52f88aa44499ac267330e5635f6051b5 (patch) | |
| tree | 2838dd4666d1226ef7ea45cf8541145100a5abc3 /src/guff/server.cr | |
| parent | efe09d414a7a8e71974dde57833ebbe97e997146 (diff) | |
| download | old-guff-17a15f5c52f88aa44499ac267330e5635f6051b5.tar.xz old-guff-17a15f5c52f88aa44499ac267330e5635f6051b5.zip  | |
refactor server
Diffstat (limited to 'src/guff/server.cr')
| -rw-r--r-- | src/guff/server.cr | 42 | 
1 files changed, 42 insertions, 0 deletions
diff --git a/src/guff/server.cr b/src/guff/server.cr new file mode 100644 index 0000000..794045a --- /dev/null +++ b/src/guff/server.cr @@ -0,0 +1,42 @@ +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  | 
