class Rack::ContentType

Sets the Content-Type header on responses which don't have one.

Builder Usage:

use Rack::ContentType, "text/plain"

When no content type argument is provided, “text/html” is the default.

Public Class Methods

new(app, content_type = "text/html") click to toggle source
# File lib/rack/content_type.rb, line 14
def initialize(app, content_type = "text/html")
  @app, @content_type = app, content_type
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/content_type.rb, line 18
def call(env)
  status, headers, body = @app.call(env)
  headers = Utils::HeaderHash[headers]

  unless STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i)
    headers[CONTENT_TYPE] ||= @content_type
  end

  [status, headers, body]
end