`Rack::Lint.new(nil)` is invalid.
[rack.git] / lib / rack / head.rb
blobc1c430f653e603320fcc2f691af18bfa7b326811
1 # frozen_string_literal: true
3 require_relative 'constants'
4 require_relative 'body_proxy'
6 module Rack
7   # Rack::Head returns an empty body for all HEAD requests. It leaves
8   # all other requests unchanged.
9   class Head
10     def initialize(app)
11       @app = app
12     end
14     def call(env)
15       _, _, body = response = @app.call(env)
17       if env[REQUEST_METHOD] == HEAD
18         response[2] = Rack::BodyProxy.new([]) do
19           body.close if body.respond_to? :close
20         end
21       end
23       response
24     end
25   end
26 end