From a53de8877d7c481fa490cba9ce61723f02f6959b Mon Sep 17 00:00:00 2001 From: Calvin Yu Date: Fri, 17 Mar 2023 05:38:51 +0000 Subject: [PATCH] Use factory proc to construct transform headers --- lib/rack/cors/resource.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/rack/cors/resource.rb b/lib/rack/cors/resource.rb index aa6ae35..2fb1daa 100644 --- a/lib/rack/cors/resource.rb +++ b/lib/rack/cors/resource.rb @@ -66,7 +66,7 @@ def to_headers(env) 'access-control-max-age' => max_age.to_s } h['access-control-allow-credentials'] = 'true' if credentials - defined?(Rack::Utils::HeaderHash) ? Rack::Utils::HeaderHash.new(h) : h + header_proc.call(h) end protected @@ -127,6 +127,16 @@ def compile(path) raise TypeError, path end end + + def header_proc + @header_proc ||= begin + if defined?(Rack::Headers) + ->(h) { h } + else + ->(h) { Rack::Utils::HeaderHash.new(h) } + end + end + end end end end