summaryrefslogtreecommitdiff
path: root/lib/metropolis/suffix_mime.rb
blob: 1234e82b33c2b30d276a7572e00e2c4082ce20c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module Metropolis::SuffixMime
  MIME_TYPES = Rack::Mime::MIME_TYPES
  include Metropolis::Constants

  def get(key, env)
    set_mime(key, super)
  end

  def head(key, env)
    set_mime(key, super)
  end

  def set_mime(key, response)
    status, headers, _ = response
    200 == status && /(\.[^\.]+)\z/ =~ key and
      type = MIME_TYPES[$1] and headers[Content_Type] = type
    response
  end
end