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