2015-12-12 18:27:46 +00:00
|
|
|
require "yaml"
|
|
|
|
|
2015-10-23 18:33:26 +00:00
|
|
|
module Kemal
|
2014-07-30 22:17:53 +00:00
|
|
|
class Config
|
|
|
|
INSTANCE = Config.new
|
2015-11-12 20:48:22 +00:00
|
|
|
HANDLERS = [] of HTTP::Handler
|
2016-01-17 11:08:12 +00:00
|
|
|
property host_binding, ssl, port, env, public_folder, logging
|
2014-07-30 22:17:53 +00:00
|
|
|
|
|
|
|
def initialize
|
2016-01-03 14:04:11 +00:00
|
|
|
@host_binding = "0.0.0.0" unless @host_binding
|
2014-07-30 22:17:53 +00:00
|
|
|
@port = 3000
|
2015-11-18 20:45:49 +00:00
|
|
|
@env = "development" unless @env
|
2015-12-12 18:27:46 +00:00
|
|
|
@public_folder = "./public"
|
2016-01-17 11:08:12 +00:00
|
|
|
@logging = true
|
2014-07-30 22:17:53 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def scheme
|
|
|
|
ssl ? "https" : "http"
|
|
|
|
end
|
2015-11-12 20:48:22 +00:00
|
|
|
|
|
|
|
def handlers
|
|
|
|
HANDLERS
|
|
|
|
end
|
|
|
|
|
|
|
|
def add_handler(handler : HTTP::Handler)
|
|
|
|
HANDLERS << handler
|
|
|
|
end
|
2015-12-12 18:27:46 +00:00
|
|
|
|
2015-12-15 21:11:21 +00:00
|
|
|
def add_ws_handler(handler : HTTP::WebSocketHandler)
|
|
|
|
HANDLERS << handler
|
|
|
|
end
|
2014-07-30 22:17:53 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.config
|
|
|
|
yield Config::INSTANCE
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.config
|
|
|
|
Config::INSTANCE
|
|
|
|
end
|
|
|
|
end
|