mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
allow %w in Handler macros (#385)
This commit is contained in:
parent
fc4c97aafd
commit
5a83522866
2 changed files with 29 additions and 2 deletions
|
@ -47,6 +47,26 @@ class PostExcludeHandler < Kemal::Handler
|
|||
end
|
||||
end
|
||||
|
||||
class ExcludeHandlerPercentW < Kemal::Handler
|
||||
exclude %w[/exclude]
|
||||
|
||||
def call(env)
|
||||
return call_next(env) if exclude_match?(env)
|
||||
env.response.print "Exclude"
|
||||
call_next env
|
||||
end
|
||||
end
|
||||
|
||||
class PostOnlyHandlerPercentW < Kemal::Handler
|
||||
only %w[/only /route1 /route2], "POST"
|
||||
|
||||
def call(env)
|
||||
return call_next(env) unless only_match?(env)
|
||||
env.response.print "Only"
|
||||
call_next env
|
||||
end
|
||||
end
|
||||
|
||||
describe "Handler" do
|
||||
it "adds custom handler before before_*" do
|
||||
filter_middleware = Kemal::FilterHandler.new
|
||||
|
@ -131,4 +151,11 @@ describe "Handler" do
|
|||
Kemal.config.handlers = [post_only_handler, post_exclude_handler]
|
||||
Kemal.config.handlers.should eq [post_only_handler, post_exclude_handler]
|
||||
end
|
||||
|
||||
it "is able to use %w in macros" do
|
||||
post_only_handler = PostOnlyHandlerPercentW.new
|
||||
exclude_handler = ExcludeHandlerPercentW.new
|
||||
Kemal.config.handlers = [post_only_handler, exclude_handler]
|
||||
Kemal.config.handlers.should eq [post_only_handler, exclude_handler]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,14 +9,14 @@ module Kemal
|
|||
|
||||
macro only(paths, method = "GET")
|
||||
class_name = {{@type.name}}
|
||||
{{paths}}.each do |path|
|
||||
({{paths}}).each do |path|
|
||||
@@only_routes_tree.add "#{class_name}/#{{{method}}.downcase}#{path}", "/#{{{method}}.downcase}#{path}"
|
||||
end
|
||||
end
|
||||
|
||||
macro exclude(paths, method = "GET")
|
||||
class_name = {{@type.name}}
|
||||
{{paths}}.each do |path|
|
||||
({{paths}}).each do |path|
|
||||
@@exclude_routes_tree.add "#{class_name}/#{{{method}}.downcase}#{path}", "/#{{{method}}.downcase}#{path}"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue