mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	Rename handlers
This commit is contained in:
		
							parent
							
								
									a4005e98be
								
							
						
					
					
						commit
						467a1b4581
					
				
					 12 changed files with 40 additions and 40 deletions
				
			
		|  | @ -2,7 +2,7 @@ require "./spec_helper" | |||
| 
 | ||||
| describe "Context" do | ||||
|   it "has a default content type" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       "Hello" | ||||
|     end | ||||
|  | @ -13,7 +13,7 @@ describe "Context" do | |||
|   end | ||||
| 
 | ||||
|   it "sets content type" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       env.response.content_type = "application/json" | ||||
|       "Hello" | ||||
|  | @ -25,7 +25,7 @@ describe "Context" do | |||
|   end | ||||
| 
 | ||||
|   it "parses headers" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       name = env.request.headers["name"] | ||||
|       "Hello #{name}" | ||||
|  | @ -39,7 +39,7 @@ describe "Context" do | |||
|   end | ||||
| 
 | ||||
|   it "sets response headers" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       env.response.headers.add "Accept-Language", "tr" | ||||
|     end | ||||
|  |  | |||
|  | @ -1,28 +1,28 @@ | |||
| require "./spec_helper" | ||||
| 
 | ||||
| describe "Logger" do | ||||
| describe "Kemal::LogHandler" do | ||||
|   it "creates a handler" do | ||||
|     logger = Kemal::Logger.new | ||||
|     logger = Kemal::LogHandler.new | ||||
|     logger.handler.should_not be nil | ||||
|   end | ||||
| 
 | ||||
|   it "creates a STDOUT handler by default" do | ||||
|     config = Kemal.config | ||||
|     logger = Kemal::Logger.new | ||||
|     logger = Kemal::LogHandler.new | ||||
|     logger.handler.should be_a IO | ||||
|   end | ||||
| 
 | ||||
|   it "creates a file handler in production" do | ||||
|     config = Kemal.config | ||||
|     config.env = "production" | ||||
|     logger = Kemal::Logger.new | ||||
|     logger = Kemal::LogHandler.new | ||||
|     logger.handler.should be_a File | ||||
|   end | ||||
| 
 | ||||
|   it "writes to a file in production" do | ||||
|     config = Kemal.config | ||||
|     config.env = "production" | ||||
|     logger = Kemal::Logger.new | ||||
|     logger = Kemal::LogHandler.new | ||||
|     request = HTTP::Request.new("GET", "/?message=world&time=now") | ||||
|     io = MemoryIO.new | ||||
|     response = HTTP::Server::Response.new(io) | ||||
|  |  | |||
|  | @ -1,8 +1,8 @@ | |||
| require "./spec_helper" | ||||
| 
 | ||||
| describe "Kemal::Handler" do | ||||
| describe "Kemal::RouteHandler" do | ||||
|   it "routes" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do | ||||
|       "hello" | ||||
|     end | ||||
|  | @ -13,7 +13,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "routes request with query string" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       "hello #{env.params["message"]}" | ||||
|     end | ||||
|  | @ -24,7 +24,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "routes request with multiple query strings" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       "hello #{env.params["message"]} time #{env.params["time"]}" | ||||
|     end | ||||
|  | @ -35,7 +35,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "route parameter has more precedence than query string arguments" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/:message" do |env| | ||||
|       "hello #{env.params["message"]}" | ||||
|     end | ||||
|  | @ -46,7 +46,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "parses simple JSON body" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "POST", "/" do |env| | ||||
|       name = env.params["name"] | ||||
|       age = env.params["age"] | ||||
|  | @ -66,7 +66,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "parses JSON with string array" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "POST", "/" do |env| | ||||
|       skills = env.params["skills"] as Array | ||||
|       "Skills #{skills.each.join(',')}" | ||||
|  | @ -85,7 +85,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "parses JSON with json object array" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "POST", "/" do |env| | ||||
|       skills = env.params["skills"] as Array | ||||
|       skills_from_languages = skills.map do |skill| | ||||
|  | @ -109,7 +109,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "renders 404 on not found" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     request = HTTP::Request.new("GET", "/?message=world") | ||||
|     io_with_context = create_request_and_return_io(kemal, request) | ||||
|     client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false) | ||||
|  | @ -117,7 +117,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   # it "renders 500 on exception" do | ||||
|   #   kemal = Kemal::Handler.new | ||||
|   #   kemal = Kemal::RouteHandler.new | ||||
|   #   kemal.add_route "GET", "/" do | ||||
|   #     raise "Exception" | ||||
|   #   end | ||||
|  | @ -129,7 +129,7 @@ describe "Kemal::Handler" do | |||
|   # end | ||||
|   # | ||||
|   it "checks for _method param in POST request to simulate PUT" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "PUT", "/" do |env| | ||||
|       "Hello World from PUT" | ||||
|     end | ||||
|  | @ -145,7 +145,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "checks for _method param in POST request to simulate PATCH" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "PATCH", "/" do |env| | ||||
|       "Hello World from PATCH" | ||||
|     end | ||||
|  | @ -161,7 +161,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "checks for _method param in POST request to simulate DELETE" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "DELETE", "/" do |env| | ||||
|       "Hello World from DELETE" | ||||
|     end | ||||
|  | @ -178,7 +178,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "can process HTTP HEAD requests for defined GET routes" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       "Hello World from GET" | ||||
|     end | ||||
|  | @ -189,7 +189,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "can't process HTTP HEAD requests for undefined GET routes" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     request = HTTP::Request.new("HEAD", "/") | ||||
|     io_with_context = create_request_and_return_io(kemal, request) | ||||
|     client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false) | ||||
|  | @ -197,7 +197,7 @@ describe "Kemal::Handler" do | |||
|   end | ||||
| 
 | ||||
|   it "redirects user to provided url" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/" do |env| | ||||
|       env.redirect "/login" | ||||
|     end | ||||
|  | @ -3,7 +3,7 @@ require "./spec_helper" | |||
| describe "Route" do | ||||
|   describe "match?" do | ||||
|     it "matches the correct route" do | ||||
|       kemal = Kemal::Handler.new | ||||
|       kemal = Kemal::RouteHandler.new | ||||
|       kemal.add_route "GET", "/route1" do |env| | ||||
|         "Route 1" | ||||
|       end | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ end | |||
| 
 | ||||
| describe "Views" do | ||||
|   it "renders file" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/view/:name" do |env| | ||||
|       name = env.params["name"] | ||||
|       render "spec/asset/hello.ecr" | ||||
|  | @ -18,7 +18,7 @@ describe "Views" do | |||
|   end | ||||
| 
 | ||||
|   it "renders file with dynamic variables" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/view/:name" do |env| | ||||
|       name = env.params["name"] | ||||
|       render_with_base_and_layout "hello.ecr" | ||||
|  | @ -30,7 +30,7 @@ describe "Views" do | |||
|   end | ||||
| 
 | ||||
|   it "renders layout" do | ||||
|     kemal = Kemal::Handler.new | ||||
|     kemal = Kemal::RouteHandler.new | ||||
|     kemal.add_route "GET", "/view/:name" do |env| | ||||
|       name = env.params["name"] | ||||
|       render "spec/asset/hello.ecr", "spec/asset/layout.ecr" | ||||
|  |  | |||
|  | @ -5,12 +5,12 @@ at_exit do | |||
|   Kemal::CLI.new | ||||
|   config = Kemal.config | ||||
|   if config.logging | ||||
|     logger = Kemal::Logger.new | ||||
|     logger = Kemal::LogHandler.new | ||||
|     config.logger = logger | ||||
|     config.logger.write "[#{config.env}] Kemal is ready to lead at #{config.scheme}://#{config.host_binding}:#{config.port}\n" | ||||
|   end | ||||
|   config.add_handler Kemal::StaticFileHandler.new(config.public_folder) | ||||
|   config.add_handler Kemal::Handler::INSTANCE | ||||
|   config.add_handler Kemal::RouteHandler::INSTANCE | ||||
| 
 | ||||
|   server = HTTP::Server.new(config.host_binding.not_nil!.to_slice, config.port, config.handlers) | ||||
|   server.ssl = config.ssl | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ HTTP_METHODS = %w(get post put patch delete) | |||
| 
 | ||||
| {% for method in HTTP_METHODS %} | ||||
|   def {{method.id}}(path, &block : HTTP::Server::Context -> _) | ||||
|    Kemal::Handler::INSTANCE.add_route({{method}}.upcase, path, &block) | ||||
|    Kemal::RouteHandler::INSTANCE.add_route({{method}}.upcase, path, &block) | ||||
|   end | ||||
| {% end %} | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| require "colorize" | ||||
| require "http" | ||||
| 
 | ||||
| class Kemal::Logger < HTTP::Handler | ||||
| class Kemal::LogHandler < HTTP::Handler | ||||
|   INSTANCE = new | ||||
|   getter handler | ||||
| 
 | ||||
|  | @ -34,7 +34,7 @@ end | |||
| # development: STDOUT in | ||||
| # production: kemal.log | ||||
| macro log(message) | ||||
|   Kemal::Logger::INSTANCE.write "#{{{message}}}\n" if Kemal.config.logging | ||||
|   Kemal::LogHandler::INSTANCE.write "#{{{message}}}\n" if Kemal.config.logging | ||||
| end | ||||
| 
 | ||||
| # Enables / Disables logging | ||||
|  |  | |||
|  | @ -36,9 +36,8 @@ class Kemal::ParamParser | |||
|   end | ||||
| 
 | ||||
|   def parse_url_params | ||||
|     params = @request.url_params | ||||
|     if params | ||||
|       params.not_nil!.each do |key, value| | ||||
|     if params = @request.url_params | ||||
|       params.each do |key, value| | ||||
|         @params[key] = value | ||||
|       end | ||||
|     end | ||||
|  |  | |||
|  | @ -1,10 +1,10 @@ | |||
| require "http/server" | ||||
| require "radix" | ||||
| 
 | ||||
| # Kemal::Handler is the main handler which handles all the HTTP requests. Routing, parsing, rendering e.g | ||||
| # Kemal::RouteHandler is the main handler which handles all the HTTP requests. Routing, parsing, rendering e.g | ||||
| # are done in this handler. | ||||
| 
 | ||||
| class Kemal::Handler < HTTP::Handler | ||||
| class Kemal::RouteHandler < HTTP::Handler | ||||
|   INSTANCE = new | ||||
| 
 | ||||
|   def initialize | ||||
|  | @ -36,7 +36,7 @@ class Kemal::Handler < HTTP::Handler | |||
|         context.response.print body | ||||
|         return context | ||||
|       rescue ex | ||||
|         Kemal::Logger::INSTANCE.write "Exception: #{ex.to_s}\n" | ||||
|         Kemal::LogHandler::INSTANCE.write "Exception: #{ex.to_s}\n" | ||||
|         return render_500(context, ex.to_s) | ||||
|       end | ||||
|     end | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue