<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -694,11 +694,12 @@ module Sinatra
         end
       end
 
-      # Look up a media type by file extension in Rack's mime registry.
-      def mime_type(type)
+      # Lookup or register a mime type in Rack's mime registry.
+      def mime_type(type, value=nil)
         return type if type.nil? || type.to_s.include?('/')
         type = &quot;.#{type}&quot; unless type.to_s[0] == ?.
-        Rack::Mime.mime_type(type, nil)
+        return Rack::Mime.mime_type(type, nil) unless value
+        Rack::Mime::MIME_TYPES[type] = value
       end
 
       # Define a before filter. Filters are run before all requests</diff>
      <filename>lib/sinatra/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -223,6 +223,19 @@ class HelpersTest &lt; Test::Unit::TestCase
     end
   end
 
+  test 'Base.mime_type registers mime type' do
+    mock_app {
+      mime_type :foo, 'application/foo'
+
+      get '/' do
+        &quot;foo is #{mime_type(:foo)}&quot;
+      end
+    }
+
+    get '/'
+    assert_equal 'foo is application/foo', body
+  end
+
   describe 'content_type' do
     it 'sets the Content-Type header' do
       mock_app {</diff>
      <filename>test/helpers_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>080adc2f7a58cc575d0cdca6ba9438b274b23144</id>
    </parent>
  </parents>
  <author>
    <name>Simon Rozet</name>
    <email>simon@rozet.name</email>
  </author>
  <url>http://github.com/sr/sinatra/commit/fd129ed5a0b11420cdea33293afd04fa8508c78b</url>
  <id>fd129ed5a0b11420cdea33293afd04fa8508c78b</id>
  <committed-date>2009-10-17T16:51:48-07:00</committed-date>
  <authored-date>2009-10-04T07:41:03-07:00</authored-date>
  <message>Allow to register a mime type with mime_type</message>
  <tree>c3ea87dc1740c4ebc6c30e61191fea95bc445d77</tree>
  <committer>
    <name>Simon Rozet</name>
    <email>simon@rozet.name</email>
  </committer>
</commit>
