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) | ||||
|     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 | ||||
|  |  | |||
|  | @ -155,4 +155,5 @@ describe "Kemal::RouteHandler" do | |||
|     client_response.status_code.should eq(302) | ||||
|     client_response.headers.has_key?("Location").should eq(true) | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  |  | |||
|  | @ -15,6 +15,12 @@ macro render(filename, *args) | |||
|   Kilt.render({{filename}}, {{*args}}) | ||||
| 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) | ||||
|   Kemal.config.add_handler handler | ||||
| end | ||||
|  | @ -46,6 +52,7 @@ def logger(logger) | |||
|   Kemal.config.add_handler logger | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
| def serve_static(status) | ||||
|   Kemal.config.serve_static = status | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue