class Heel::MimeMap
MimeMap
is a Heel
specific mime mapping utility. It is based upon MIME::Type and adds some additional mime types. It can also say what the icon name for a particular mime type is.
Public Class Methods
additional_mime_types()
click to toggle source
if any other mime types are needed, add them directly via the mime-types calls.
# File lib/heel/mime_map.rb, line 39 def additional_mime_types [ MIME::Type.new( 'text/plain' ) { |t| t.extensions = %w[ rb rdoc rhtml md markdown ] }, ] end
icons_by_mime_type()
click to toggle source
# File lib/heel/mime_map.rb, line 16 def icons_by_mime_type @icons_by_mime_type ||= { "text/plain" => "page_white_text.png", "image" => "picture.png", "pdf" => "page_white_acrobat.png", "xml" => "page_white_code.png", "compress" => "compress.png", "gzip" => "compress.png", "zip" => "compress.png", "application/xhtml+xml" => "xhtml.png", "application/word" => "page_word.png", "application/excel" => "page_excel.png", "application/powerpoint" => "page_white_powerpoint.png", "text/html" => "html.png", "application" => "application.png", "text" => "page_white_text.png", :directory => "folder.png", :default => "page_white.png", } end
new()
click to toggle source
# File lib/heel/mime_map.rb, line 46 def initialize MimeMap.additional_mime_types.each do |mt| existing_type = MIME::Types[mt] if existing_type.empty? then MIME::Types.add(mt) else type = existing_type.first type.add_extensions(mt.extensions) end end end
Public Instance Methods
default_mime_type()
click to toggle source
# File lib/heel/mime_map.rb, line 58 def default_mime_type @default_mime_type ||= MIME::Types["application/octet-stream"].first end
icon_for(mime_type)
click to toggle source
return the icon name for a particular mime type
# File lib/heel/mime_map.rb, line 70 def icon_for(mime_type) icon = nil [:content_type, :sub_type, :media_type].each do |t| icon = MimeMap.icons_by_mime_type[mime_type.send(t)] return icon if icon end icon = MimeMap.icons_by_mime_type[:default] end
mime_type_of(f)
click to toggle source
returns the mime type of the file at a given pathname
# File lib/heel/mime_map.rb, line 64 def mime_type_of(f) MIME::Types.of(f).last || default_mime_type end