Add public_folder macro

This commit is contained in:
Serdar Dogruyol 2015-12-30 20:16:04 +02:00
parent b7ec6014aa
commit aaa2ee1e31
3 changed files with 9 additions and 14 deletions

View file

@ -28,4 +28,9 @@ describe "Config" do
config.add_handler CustomTestHandler.new
config.handlers.size.should eq(1)
end
it "sets public folder" do
public_folder "/some/path/to/folder"
Kemal.config.public_folder.should eq("/some/path/to/folder")
end
end

View file

@ -10,7 +10,6 @@ module Kemal
@port = 3000
@env = "development" unless @env
@public_folder = "./public"
read_file
end
def scheme
@ -28,19 +27,6 @@ module Kemal
def add_ws_handler(handler : HTTP::WebSocketHandler)
HANDLERS << handler
end
# Reads configuration from config.yml. Currently it only supports the public_folder
# option.
# config.yml
# public_folder = "root/to/folder"
def read_file
path = File.expand_path("config.yml", Dir.current)
if File.exists?(path)
data = YAML.load(File.read(path)) as Hash
public_folder = File.expand_path("./#{data["public_folder"]}", Dir.current)
@public_folder = public_folder
end
end
end
def self.config

View file

@ -26,3 +26,7 @@ macro basic_auth(username, password)
auth_handler = Kemal::Middleware::HTTPBasicAuth.new("serdar", "123")
Kemal.config.add_handler auth_handler
end
macro public_folder(path)
Kemal.config.public_folder = {{path}}
end