module MimeType
MIME_TYPES = {
- 'text/plain' => 'txt,tpl,properties',
+ 'text/plain' => 'txt,tpl,properties,patch,diff,ini,readme,install,upgrade',
'text/css' => 'css',
'text/html' => 'html,htm,xhtml',
'text/x-c' => 'c,cpp,h',
'text/x-php' => 'php,php3,php4,php5',
'text/x-python' => 'py',
'text/x-ruby' => 'rb,rbw,ruby,rake',
+ 'text/x-csh' => 'csh',
'text/x-sh' => 'sh',
- 'text/xml' => 'xml',
+ 'text/xml' => 'xml,xsd,mxml',
'text/yaml' => 'yml,yaml',
'image/gif' => 'gif',
'image/jpeg' => 'jpg,jpeg,jpe',
'image/png' => 'png',
- 'image/tiff' => 'tiff,tif'
+ 'image/tiff' => 'tiff,tif',
+ 'image/x-ms-bmp' => 'bmp',
+ 'image/x-xpixmap' => 'xpm',
}.freeze
EXTENSIONS = MIME_TYPES.inject({}) do |map, (type, exts)|
- exts.split(',').each {|ext| map[ext] = type}
+ exts.split(',').each {|ext| map[ext.strip] = type}
map
end
# returns mime type for name or nil if unknown
def self.of(name)
return nil unless name
- m = name.to_s.match(/\.([^\.]+)$/)
- EXTENSIONS[m[1]] if m
+ m = name.to_s.match(/(^|\.)([^\.]+)$/)
+ EXTENSIONS[m[2].downcase] if m
end
def self.main_mimetype_of(name)