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)

Mime[:xml], Mime[:yaml], Mime[:atom], Mime[:json], Mime[:rss], Mime[:url_encoded_form].
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 = [])

rendering different HTML versions depending on the user agent, like an iPhone.
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)

Mime::Type.unregister(:mobile)

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