mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	Merge pull request #136 from f/master
Added return_with macro to break response blocks.
This commit is contained in:
		
						commit
						de98236fc4
					
				
					 3 changed files with 41 additions and 0 deletions
				
			
		|  | @ -34,4 +34,37 @@ describe "Macros" do | ||||||
|       config.logger.should be_a(CustomLogHandler) |       config.logger.should be_a(CustomLogHandler) | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   describe "#return_with" do | ||||||
|  |     it "can break block with return_with macro" do | ||||||
|  |       get "/non-breaking" do |env| | ||||||
|  |         "hello" | ||||||
|  |         "world" | ||||||
|  |       end | ||||||
|  |       request = HTTP::Request.new("GET", "/non-breaking") | ||||||
|  |       client_response = call_request_on_app(request) | ||||||
|  |       client_response.status_code.should eq(200) | ||||||
|  |       client_response.body.should eq("world") | ||||||
|  | 
 | ||||||
|  |       get "/breaking" do |env| | ||||||
|  |         return_with env, 404, "hello" | ||||||
|  |         "world" | ||||||
|  |       end | ||||||
|  |       request = HTTP::Request.new("GET", "/breaking") | ||||||
|  |       client_response = call_request_on_app(request) | ||||||
|  |       client_response.status_code.should eq(404) | ||||||
|  |       client_response.body.should eq("hello") | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     it "can break block with return_with macro using default values" do | ||||||
|  |       get "/" do |env| | ||||||
|  |         return_with env | ||||||
|  |         "world" | ||||||
|  |       end | ||||||
|  |       request = HTTP::Request.new("GET", "/") | ||||||
|  |       client_response = call_request_on_app(request) | ||||||
|  |       client_response.status_code.should eq(200) | ||||||
|  |       client_response.body.should eq("") | ||||||
|  |     end | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -155,4 +155,5 @@ describe "Kemal::RouteHandler" do | ||||||
|     client_response.status_code.should eq(302) |     client_response.status_code.should eq(302) | ||||||
|     client_response.headers.has_key?("Location").should eq(true) |     client_response.headers.has_key?("Location").should eq(true) | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -15,6 +15,12 @@ macro render(filename, *args) | ||||||
|   Kilt.render({{filename}}, {{*args}}) |   Kilt.render({{filename}}, {{*args}}) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
|  | macro return_with(env, status_code = 200, response = "") | ||||||
|  |   {{env}}.response.status_code = {{status_code}} | ||||||
|  |   {{env}}.response.print {{response}} | ||||||
|  |   next | ||||||
|  | end | ||||||
|  | 
 | ||||||
| def add_handler(handler) | def add_handler(handler) | ||||||
|   Kemal.config.add_handler handler |   Kemal.config.add_handler handler | ||||||
| end | end | ||||||
|  | @ -46,6 +52,7 @@ def logger(logger) | ||||||
|   Kemal.config.add_handler logger |   Kemal.config.add_handler logger | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| def serve_static(status) | def serve_static(status) | ||||||
|   Kemal.config.serve_static = status |   Kemal.config.serve_static = status | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue