Use context instead of response in static_headers helpers

This commit is contained in:
Serdar Dogruyol 2024-05-10 15:31:55 +03:00
parent e69bd400b7
commit bae9864833
3 changed files with 9 additions and 9 deletions

View file

@ -141,11 +141,11 @@ describe Kemal::StaticFileHandler do
end
it "should handle setting custom headers" do
headers = Proc(HTTP::Server::Response, String, File::Info, Void).new do |response, path, stat|
headers = Proc(HTTP::Server::Context, String, File::Info, Void).new do |env, path, stat|
if path =~ /\.html$/
response.headers.add("Access-Control-Allow-Origin", "*")
env.response.headers.add("Access-Control-Allow-Origin", "*")
end
response.headers.add("Content-Size", stat.size.to_s)
env.response.headers.add("Content-Size", stat.size.to_s)
end
static_headers(&headers)

View file

@ -23,7 +23,7 @@ module Kemal
property app_name, host_binding, ssl, port, env, public_folder, logging, running
property always_rescue, server : HTTP::Server?, extra_options, shutdown_message
property serve_static : (Bool | Hash(String, Bool))
property static_headers : (HTTP::Server::Response, String, File::Info -> Void)?
property static_headers : (HTTP::Server::Context, String, File::Info -> Void)?
property? powered_by_header : Bool = true
def initialize

View file

@ -134,7 +134,7 @@ def send_file(env : HTTP::Server::Context, path : String, mime_type : String? =
filestat = File.info(file_path)
attachment(env, filename, disposition)
Kemal.config.static_headers.try(&.call(env.response, file_path, filestat))
Kemal.config.static_headers.try(&.call(env, file_path, filestat))
File.open(file_path) do |file|
if env.request.method == "GET" && env.request.headers.has_key?("Range")
@ -250,13 +250,13 @@ end
# Adds headers to `Kemal::StaticFileHandler`. This is especially useful for `CORS`.
#
# ```
# static_headers do |response, filepath, filestat|
# static_headers do |env, filepath, filestat|
# if filepath =~ /\.html$/
# response.headers.add("Access-Control-Allow-Origin", "*")
# env.response.headers.add("Access-Control-Allow-Origin", "*")
# end
# response.headers.add("Content-Size", filestat.size.to_s)
# env.response.headers.add("Content-Size", filestat.size.to_s)
# end
# ```
def static_headers(&headers : HTTP::Server::Response, String, File::Info -> Void)
def static_headers(&headers : HTTP::Server::Context, String, File::Info -> Void)
Kemal.config.static_headers = headers
end