Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 4405

Show
Ignore:
Timestamp:
06/02/06 04:11:56 (2 years ago)
Author:
david
Message:

Added Mime::Type.register(string, symbol, synonyms = []) for adding new custom mime types [DHH]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r4404 r4405  
    11*SVN* 
     2 
     3* Added Mime::Type.register(string, symbol, synonyms = []) for adding new custom mime types [DHH]. Example: Mime::Type.register("image/gif", :gif) 
    24 
    35* Added support for Mime objects in render :content_type option [DHH]. Example: render :text => some_atom, :content_type => Mime::ATOM 
  • trunk/actionpack/lib/action_controller/mime_type.rb

    r4399 r4405  
    3030      def lookup(string) 
    3131        LOOKUP[string] 
     32      end 
     33 
     34      def register(string, symbol, synonyms = []) 
     35        Mime.send :const_set, symbol.to_s.upcase, Type.new(string, symbol, synonyms) 
     36        LOOKUP[string] = Mime.send :const_get, symbol.to_s.upcase 
    3237      end 
    3338 
     
    115120  HTML  = Type.new "text/html", :html, %w( application/xhtml+xml ) 
    116121  JS    = Type.new "text/javascript", :js, %w( application/javascript application/x-javascript ) 
     122  ICS   = Type.new "text/calendar", :ics 
    117123  XML   = Type.new "application/xml", :xml, %w( text/xml application/x-xml ) 
    118124  RSS   = Type.new "application/rss+xml", :rss 
     
    128134  LOOKUP["application/xhtml+xml"]    = HTML 
    129135 
     136  LOOKUP["text/javascript"]          = JS 
     137  LOOKUP["application/javascript"]   = JS 
     138  LOOKUP["application/x-javascript"] = JS 
     139 
     140  LOOKUP["text/calendar"]            = ICS 
     141 
    130142  LOOKUP["application/xml"]          = XML 
    131143  LOOKUP["text/xml"]                 = XML 
    132144  LOOKUP["application/x-xml"]        = XML 
    133  
    134   LOOKUP["text/javascript"]          = JS 
    135   LOOKUP["application/javascript"]   = JS 
    136   LOOKUP["application/x-javascript"] = JS 
    137145 
    138146  LOOKUP["text/yaml"]                = YAML 
  • trunk/actionpack/test/controller/mime_type_test.rb

    r4399 r4405  
    2222    assert_equal expect, Mime::Type.parse(accept) 
    2323  end 
     24   
     25  def test_custom_type 
     26    Mime::Type.register("image/gif", :gif) 
     27    assert_nothing_raised { Mime::GIF } 
     28    Mime.send :remove_const, :GIF 
     29  end 
    2430end