fix: malformed charset param (#2263)
[rack.git] / lib / rack / content_type.rb
blob19f07824f563bc197c6f92a695d50f29f687ee55
1 # frozen_string_literal: true
3 require_relative 'constants'
4 require_relative 'utils'
6 module Rack
8   # Sets the content-type header on responses which don't have one.
9   #
10   # Builder Usage:
11   #   use Rack::ContentType, "text/plain"
12   #
13   # When no content type argument is provided, "text/html" is the
14   # default.
15   class ContentType
16     include Rack::Utils
18     def initialize(app, content_type = "text/html")
19       @app = app
20       @content_type = content_type
21     end
23     def call(env)
24       status, headers, _ = response = @app.call(env)
26       unless STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i)
27         headers[CONTENT_TYPE] ||= @content_type
28       end
30       response
31     end
32   end
33 end