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:
|
||||
ameba:
|
||||
github: crystal-ameba/ameba
|
||||
version: ~> 0.10.0
|
||||
version: ~> 0.12.0
|
||||
|
||||
crystal: 0.30.0
|
||||
|
||||
|
|
|
@ -48,6 +48,9 @@ def create_ws_request_and_return_io_and_context(handler, request)
|
|||
rescue IO::Error
|
||||
# Raises because the IO::Memory is empty
|
||||
end
|
||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
||||
response.upgrade_handler.try &.call(io)
|
||||
{% end %}
|
||||
io.rewind
|
||||
{io, context}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
require "flate"
|
||||
require "gzip"
|
||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
||||
require "compress/deflate"
|
||||
require "compress/gzip"
|
||||
{% end %}
|
||||
require "mime"
|
||||
|
||||
# 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)
|
||||
if condition && request_headers.includes_word?("Accept-Encoding", "gzip")
|
||||
env.response.headers["Content-Encoding"] = "gzip"
|
||||
Gzip::Writer.open(env.response) do |deflate|
|
||||
IO.copy(file, deflate)
|
||||
end
|
||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
||||
Compress::Gzip::Writer.open(env.response) do |deflate|
|
||||
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")
|
||||
env.response.headers["Content-Encoding"] = "deflate"
|
||||
Flate::Writer.open(env.response) do |deflate|
|
||||
IO.copy(file, deflate)
|
||||
end
|
||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
||||
Compress::Deflate::Writer.open(env.response) do |deflate|
|
||||
IO.copy(file, deflate)
|
||||
end
|
||||
{% else %}
|
||||
Flate::Writer.open(env.response) do |deflate|
|
||||
IO.copy(file, deflate)
|
||||
end
|
||||
{% end %}
|
||||
else
|
||||
env.response.content_length = filesize
|
||||
IO.copy(file, env.response)
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
{% if !flag?(:without_zlib) %}
|
||||
require "zlib"
|
||||
{% end %}
|
||||
|
||||
module Kemal
|
||||
class StaticFileHandler < HTTP::StaticFileHandler
|
||||
# ameba:disable Metrics/CyclomaticComplexity
|
||||
|
|
Loading…
Reference in a new issue