class Mime::Type
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/action_dispatch/http/mime_type.rbs class Mime::Type def ==: (String mime_type) -> false def lookup: (String string) -> Mime::Type def lookup_by_extension: (Symbol extension) -> Mime::Type def parse: (String accept_header) -> untyped def parse_trailing_star: (String accept_header) -> nil def ref: () -> Symbol def to_s: () -> String def to_sym: () -> Symbol end
end
end
end
format.xml { render xml: @post }
format.ics { render body: @post.to_ics, mime_type: Mime::Type.lookup(“text/calendar”) }
format.html
respond_to do |format|
@post = Post.find(params)
def show
class PostsController < ActionController::Base
Encapsulates the notion of a MIME type. Can be used at render time, for example, with:
def ==(mime_type)
Experimental RBS support (using type sampling data from the type_fusion
project).
def ==: (String mime_type) -> false
This signature was generated using 2 samples from 1 application.
def ==(mime_type) return false unless mime_type (@synonyms + [ self ]).any? do |synonym| synonym.to_s == mime_type.to_s || synonym.to_sym == mime_type.to_sym end end
def ===(list)
def ===(list) if list.is_a?(Array) (@synonyms + [ self ]).any? { |synonym| list.include?(synonym) } else super end end
def =~(mime_type)
def =~(mime_type) return false unless mime_type regexp = Regexp.new(Regexp.quote(mime_type.to_s)) @synonyms.any? { |synonym| synonym.to_s =~ regexp } || @string =~ regexp end
def all?; false; end
def all?; false; end
def eql?(other)
def eql?(other) super || (self.class == other.class && @string == other.string && @synonyms == other.synonyms && @symbol == other.symbol) end
def html?
def html? (symbol == :html) || /html/.match?(@string) end
def initialize(string, symbol = nil, synonyms = [])
def initialize(string, symbol = nil, synonyms = []) unless MIME_REGEXP.match?(string) raise InvalidMimeType, "#{string.inspect} is not a valid MIME type" end @symbol, @synonyms = symbol, synonyms @string = string @hash = [@string, @synonyms, @symbol].hash end
def lookup(string)
Experimental RBS support (using type sampling data from the type_fusion
project).
def lookup: (String string) -> Mime::Type
This signature was generated using 4 samples from 2 applications.
def lookup(string) LOOKUP[string] || Type.new(string) end
def lookup_by_extension(extension)
Experimental RBS support (using type sampling data from the type_fusion
project).
def lookup_by_extension: (Symbol extension) -> Mime::Type
This signature was generated using 7 samples from 1 application.
def lookup_by_extension(extension) EXTENSION_LOOKUP[extension.to_s] end
def match?(mime_type)
def match?(mime_type) return false unless mime_type regexp = Regexp.new(Regexp.quote(mime_type.to_s)) @synonyms.any? { |synonym| synonym.to_s.match?(regexp) } || @string.match?(regexp) end
def method_missing(method, *args)
def method_missing(method, *args) if method.end_with?("?") method[0..-2].downcase.to_sym == to_sym else super end end
def parse(accept_header)
Experimental RBS support (using type sampling data from the type_fusion
project).
def parse: (String accept_header) -> untyped
This signature was generated using 1 sample from 1 application.
def parse(accept_header) if !accept_header.include?(",") accept_header = accept_header.split(PARAMETER_SEPARATOR_REGEXP).first return [] unless accept_header parse_trailing_star(accept_header) || [Mime::Type.lookup(accept_header)].compact else list, index = [], 0 accept_header.split(",").each do |header| params, q = header.split(PARAMETER_SEPARATOR_REGEXP) next unless params params.strip! next if params.empty? params = parse_trailing_star(params) || [params] params.each do |m| list << AcceptItem.new(index, m.to_s, q) index += 1 end end AcceptList.sort! list end end
def parse_data_with_trailing_star(type)
For an input of 'application', returns [Mime[:html], Mime[:js],
Mime[:html], Mime[:css], Mime[:csv], Mime[:js], Mime[:yaml], Mime[:text].
For an input of 'text', returns [Mime[:json], Mime[:xml], Mime[:ics],
def parse_data_with_trailing_star(type) Mime::SET.select { |m| m.match?(type) } end
def parse_trailing_star(accept_header)
Experimental RBS support (using type sampling data from the type_fusion
project).
def parse_trailing_star: (String accept_header) -> nil
This signature was generated using 1 sample from 1 application.
def parse_trailing_star(accept_header) parse_data_with_trailing_star($1) if accept_header =~ TRAILING_STAR_REGEXP end
def ref
Experimental RBS support (using type sampling data from the type_fusion
project).
def ref: () -> Symbol
This signature was generated using 6 samples from 2 applications.
def ref symbol || to_s end
def register(string, symbol, mime_type_synonyms = [], extension_synonyms = [], skip_lookup = false)
def register(string, symbol, mime_type_synonyms = [], extension_synonyms = [], skip_lookup = false) new_mime = Type.new(string, symbol, mime_type_synonyms) SET << new_mime ([string] + mime_type_synonyms).each { |str| LOOKUP[str] = new_mime } unless skip_lookup ([symbol] + extension_synonyms).each { |ext| EXTENSION_LOOKUP[ext.to_s] = new_mime } @register_callbacks.each do |callback| callback.call(new_mime) end new_mime end
def register_alias(string, symbol, extension_synonyms = [])
Registers an alias that's not used on MIME type lookup, but can be referenced directly. Especially useful for
def register_alias(string, symbol, extension_synonyms = []) register(string, symbol, [], extension_synonyms, true) end
def register_callback(&block)
def register_callback(&block) @register_callbacks << block end
def respond_to_missing?(method, include_private = false)
def respond_to_missing?(method, include_private = false) method.end_with?("?") || super end
def to_a; end
def to_a; end
def to_ary; end
def to_ary; end
def to_s
Experimental RBS support (using type sampling data from the type_fusion
project).
def to_s: () -> String
This signature was generated using 3 samples from 1 application.
def to_s @string end
def to_str
def to_str to_s end
def to_sym
Experimental RBS support (using type sampling data from the type_fusion
project).
def to_sym: () -> Symbol
This signature was generated using 1 sample from 1 application.
def to_sym @symbol end
def unregister(symbol)
To unregister a MIME type:
This method is opposite of register method.
def unregister(symbol) symbol = symbol.downcase if mime = Mime[symbol] SET.delete_if { |v| v.eql?(mime) } LOOKUP.delete_if { |_, v| v.eql?(mime) } EXTENSION_LOOKUP.delete_if { |_, v| v.eql?(mime) } end end