mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
Merge branch 'benjolitz-additional_options_closure'
This commit is contained in:
commit
212ea8707d
3 changed files with 20 additions and 1 deletions
|
@ -28,4 +28,19 @@ describe "Config" do
|
|||
config.add_handler CustomTestHandler.new
|
||||
config.handlers.size.should eq(5)
|
||||
end
|
||||
|
||||
it "adds custom options" do
|
||||
config = Kemal.config
|
||||
ARGV.push("--test")
|
||||
ARGV.push("FOOBAR")
|
||||
test_option = nil
|
||||
|
||||
config.extra_options do |parser|
|
||||
parser.on("--test TEST_OPTION", "Test an option") do |opt|
|
||||
test_option = opt
|
||||
end
|
||||
end
|
||||
Kemal::CLI.new
|
||||
test_option.should eq("FOOBAR")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -34,6 +34,7 @@ module Kemal
|
|||
puts opts
|
||||
exit 0
|
||||
end
|
||||
@config.extra_options.try &.call(opts)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ module Kemal
|
|||
@server : HTTP::Server?
|
||||
|
||||
property host_binding, ssl, port, env, public_folder, logging,
|
||||
always_rescue, serve_static, server
|
||||
always_rescue, serve_static, server, extra_options
|
||||
|
||||
def initialize
|
||||
@host_binding = "0.0.0.0"
|
||||
|
@ -68,6 +68,9 @@ module Kemal
|
|||
HANDLERS.insert(0, @logger.not_nil!)
|
||||
end
|
||||
|
||||
def extra_options(&@extra_options : OptionParser ->)
|
||||
end
|
||||
|
||||
private def setup_error_handler
|
||||
if @always_rescue
|
||||
@error_handler ||= Kemal::CommonExceptionHandler.new
|
||||
|
|
Loading…
Reference in a new issue