mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	Upgrade to Crystal 0.35.0 (#570)
* Update to ameba ~> 0.12.0 * Use Compress::Deflate and Compress::Gzip * Drop unused require * Fix spec due to defer request upgrade
This commit is contained in:
		
							parent
							
								
									70684a2cf0
								
							
						
					
					
						commit
						a8c0f09b85
					
				
					 4 changed files with 26 additions and 13 deletions
				
			
		|  | @ -18,7 +18,7 @@ dependencies: | ||||||
| development_dependencies: | development_dependencies: | ||||||
|   ameba: |   ameba: | ||||||
|     github: crystal-ameba/ameba |     github: crystal-ameba/ameba | ||||||
|     version: ~> 0.10.0 |     version: ~> 0.12.0 | ||||||
| 
 | 
 | ||||||
| crystal: 0.30.0 | crystal: 0.30.0 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -48,6 +48,9 @@ def create_ws_request_and_return_io_and_context(handler, request) | ||||||
|   rescue IO::Error |   rescue IO::Error | ||||||
|     # Raises because the IO::Memory is empty |     # Raises because the IO::Memory is empty | ||||||
|   end |   end | ||||||
|  |   {% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %} | ||||||
|  |     response.upgrade_handler.try &.call(io) | ||||||
|  |   {% end %} | ||||||
|   io.rewind |   io.rewind | ||||||
|   {io, context} |   {io, context} | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -1,5 +1,7 @@ | ||||||
| require "flate" | {% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %} | ||||||
| require "gzip" |   require "compress/deflate" | ||||||
|  |   require "compress/gzip" | ||||||
|  | {% end %} | ||||||
| require "mime" | require "mime" | ||||||
| 
 | 
 | ||||||
| # Adds given `Kemal::Handler` to handlers chain. | # Adds given `Kemal::Handler` to handlers chain. | ||||||
|  | @ -142,14 +144,26 @@ def send_file(env : HTTP::Server::Context, path : String, mime_type : String? = | ||||||
|     condition = config.is_a?(Hash) && config["gzip"]? == true && filesize > minsize && Kemal::Utils.zip_types(file_path) |     condition = config.is_a?(Hash) && config["gzip"]? == true && filesize > minsize && Kemal::Utils.zip_types(file_path) | ||||||
|     if condition && request_headers.includes_word?("Accept-Encoding", "gzip") |     if condition && request_headers.includes_word?("Accept-Encoding", "gzip") | ||||||
|       env.response.headers["Content-Encoding"] = "gzip" |       env.response.headers["Content-Encoding"] = "gzip" | ||||||
|       Gzip::Writer.open(env.response) do |deflate| |       {% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %} | ||||||
|         IO.copy(file, deflate) |         Compress::Gzip::Writer.open(env.response) do |deflate| | ||||||
|       end |           IO.copy(file, deflate) | ||||||
|  |         end | ||||||
|  |       {% else %} | ||||||
|  |         Gzip::Writer.open(env.response) do |deflate| | ||||||
|  |           IO.copy(file, deflate) | ||||||
|  |         end | ||||||
|  |       {% end %} | ||||||
|     elsif condition && request_headers.includes_word?("Accept-Encoding", "deflate") |     elsif condition && request_headers.includes_word?("Accept-Encoding", "deflate") | ||||||
|       env.response.headers["Content-Encoding"] = "deflate" |       env.response.headers["Content-Encoding"] = "deflate" | ||||||
|       Flate::Writer.open(env.response) do |deflate| |       {% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %} | ||||||
|         IO.copy(file, deflate) |         Compress::Deflate::Writer.open(env.response) do |deflate| | ||||||
|       end |           IO.copy(file, deflate) | ||||||
|  |         end | ||||||
|  |       {% else %} | ||||||
|  |         Flate::Writer.open(env.response) do |deflate| | ||||||
|  |           IO.copy(file, deflate) | ||||||
|  |         end | ||||||
|  |       {% end %} | ||||||
|     else |     else | ||||||
|       env.response.content_length = filesize |       env.response.content_length = filesize | ||||||
|       IO.copy(file, env.response) |       IO.copy(file, env.response) | ||||||
|  |  | ||||||
|  | @ -1,7 +1,3 @@ | ||||||
| {% if !flag?(:without_zlib) %} |  | ||||||
|   require "zlib" |  | ||||||
| {% end %} |  | ||||||
| 
 |  | ||||||
| module Kemal | module Kemal | ||||||
|   class StaticFileHandler < HTTP::StaticFileHandler |   class StaticFileHandler < HTTP::StaticFileHandler | ||||||
|     # ameba:disable Metrics/CyclomaticComplexity |     # ameba:disable Metrics/CyclomaticComplexity | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue