Encapsulates the notion of a mime type. Can be used at render time, for example, with:
class PostsController < ActionController::Base
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html
format.ics { render text: @post.to_ics, mime_type: Mime::Type["text/calendar"] }
format.xml { render xml: @post }
end
end
end
Methods
- #
- H
- L
- N
- P
- R
- T
- U
Constants
TRAILING_STAR_REGEXP | = | /(text|application)\/\*/ |
PARAMETER_SEPARATOR_REGEXP | = | /;\s*\w+="?\w+"?/ |
Attributes
[R] | symbol |
Class Public methods
lookup(string)
Link
lookup_by_extension(extension)
Link
new(string, symbol = nil, synonyms = [])
Link
parse(accept_header)
Link
# File actionpack/lib/action_dispatch/http/mime_type.rb, line 176 def parse(accept_header) if !accept_header.include?(',') accept_header = accept_header.split(PARAMETER_SEPARATOR_REGEXP).first parse_trailing_star(accept_header) || [Mime::Type.lookup(accept_header)].compact else list, index = AcceptList.new, 0 accept_header.split(',').each do |header| params, q = header.split(PARAMETER_SEPARATOR_REGEXP) if params.present? params.strip! params = parse_trailing_star(params) || [params] params.each do |m| list << AcceptItem.new(index, m.to_s, q) index += 1 end end end list.assort! end end
parse_data_with_trailing_star(input)
Link
For an input of 'text'
, returns [Mime::JSON,
Mime::XML, Mime::ICS, Mime::HTML, Mime::CSS, Mime::CSV, Mime::JS,
Mime::YAML, Mime::TEXT]
.
For an input of 'application'
, returns
[Mime::HTML, Mime::JS, Mime::XML, Mime::YAML, Mime::ATOM, Mime::JSON,
Mime::RSS, Mime::URL_ENCODED_FORM]
.
parse_trailing_star(accept_header)
Link
register(string, symbol, mime_type_synonyms = [], extension_synonyms = [], skip_lookup = false)
Link
# File actionpack/lib/action_dispatch/http/mime_type.rb, line 162 def register(string, symbol, mime_type_synonyms = [], extension_synonyms = [], skip_lookup = false) Mime.const_set(symbol.upcase, Type.new(string, symbol, mime_type_synonyms)) new_mime = Mime.const_get(symbol.upcase) SET << new_mime ([string] + mime_type_synonyms).each { |str| LOOKUP[str] = SET.last } unless skip_lookup ([symbol] + extension_synonyms).each { |ext| EXTENSION_LOOKUP[ext.to_s] = SET.last } @register_callbacks.each do |callback| callback.call(new_mime) end end
register_alias(string, symbol, extension_synonyms = [])
Link
Registers an alias that's not used on mime type lookup, but can be referenced directly. Especially useful for rendering different HTML versions depending on the user agent, like an iPhone.
register_callback(&block)
Link
unregister(symbol)
Link
This method is opposite of register method.
Usage:
Mime::Type.unregister(:mobile)
# File actionpack/lib/action_dispatch/http/mime_type.rb, line 217 def unregister(symbol) symbol = symbol.upcase mime = Mime.const_get(symbol) Mime.instance_eval { remove_const(symbol) } SET.delete_if { |v| v.eql?(mime) } LOOKUP.delete_if { |_,v| v.eql?(mime) } EXTENSION_LOOKUP.delete_if { |_,v| v.eql?(mime) } end
Instance Public methods
==(mime_type)
Link
===(list)
Link
=~(mime_type)
Link
html?()
Link
ref()
Link
to_s()
Link
to_str()
Link