padrino-mailer/lib/padrino-mailer/mime.rb
module Padrino
module Mailer
##
# Handles MIME type declarations for mail delivery.
#
module Mime
##
# Returns Symbol with mime type if found, otherwise use +fallback+.
# +mime+ should be the content type like "text/plain"
# +fallback+ may be any symbol.
#
# Also see the documentation for {MIME_TYPES}.
#
# @param [String] mime
# The mime alias to fetch (i.e 'text/plain').
# @param [Symbol] fallback
# The fallback mime to use if +mime+ doesn't exist.
#
# @example
# Padrino::Mailer::Mime.mime_type('text/plain')
# # => :plain
# Padrino::Mailer::Mime.mime_type('text/html')
# # => :html
#
# This is a shortcut for:
#
# Padrino::Mailer::Mime::MIME_TYPES.fetch('text/plain', :plain)
#
def self.mime_type(mime, fallback=:plain)
MIME_TYPES.fetch(mime.to_s.split(';').first.to_s.downcase, fallback)
end
##
# List of common mime-types, selected from various sources
# according to their usefulness for an email scope.
#
# You can add your own mime types like:
#
# Padrino::Mailer::Mime::MIME_TYPES.merge!("text/xml" => :xml)
#
MIME_TYPES = {
"text/html" => :html,
"text/plain" => :plain,
"text/xml" => :xml
}
end
end
end