Skip to content

struct MIME::MediaType
inherits Struct

A MediaType describes a MIME content type with optional parameters.

Class methods

.new(media_type, params = {} of String => String)

Creates a new MediaType instance.

View source

.parse(string : String) : MediaType

Parses a MIME type string representation including any optional parameters, per RFC 1521. Media types are the values in Content-Type and Content-Disposition HTTP headers (RFC 2183).

Media type is lowercased and trimmed of whitespace. Param keys are lowercased.

Raises MIME::Error on error.

View source

.parse?(string : String) : MediaType?

Parses a MIME type string representation including any optional parameters, per RFC 1521. Media types are the values in Content-Type and Content-Disposition HTTP headers (RFC 2183).

Media type is lowercased and trimmed of whitespace. Param keys are lowercased.

Returns nil on error.

View source

Methods

#[](key : String) : String

Returns the value for the parameter given by key. If not found, raises KeyError.

require "mime/media_type"

MIME::MediaType.parse("text/plain; charset=UTF-8")["charset"] # => "UTF-8"
MIME::MediaType.parse("text/plain; charset=UTF-8")["foo"]     # raises KeyError
View source

#[]=(key : String, value : String)

Sets the value of parameter key to the given value.

require "mime/media_type"

mime_type = MIME::MediaType.parse("x-application/example")
mime_type["foo"] = "bar"
mime_type["foo"] # => "bar"
View source

#[]?(key : String) : String?

Returns the value for the parameter given by key. If not found, returns nil.

require "mime/media_type"

MIME::MediaType.parse("text/plain; charset=UTF-8")["charset"]? # => "UTF-8"
MIME::MediaType.parse("text/plain; charset=UTF-8")["foo"]?     # => nil
View source

#each_parameter(&block : String, String -> _) : Nil

Calls the given block for each parameter and passes in the key and the value.

View source

#each_parameter : Iterator(Tuple(String, String))

Returns an iterator over the parameter which behaves like an Iterator returning a Tuple of key and value.

View source

#fetch(key : String, default)

Returns the value for the parameter given by key, or when not found the value given by default.

require "mime/media_type"

MIME::MediaType.parse("x-application/example").fetch("foo", "baz")          # => "baz"
MIME::MediaType.parse("x-application/example; foo=bar").fetch("foo", "baz") # => "bar"
View source

#fetch(key : String, &block : String -> _)

Returns the value for the parameter given by key, or when not found calls the given block with the key.

require "mime/media_type"

MIME::MediaType.parse("x-application/example").fetch("foo") { |key| key }          # => "foo"
MIME::MediaType.parse("x-application/example; foo=bar").fetch("foo") { |key| key } # => "bar"
View source

#media_type : String

View source

#sub_type : String?

Second component of media_type or nil.

require "mime/media_type"

MIME::MediaType.new("text/plain").sub_type # => "plain"
MIME::MediaType.new("foo").sub_type        # => nil
View source

#to_s(io : IO) : Nil

Same as #inspect(io).

View source

#type : String

First component of media_type.

require "mime/media_type"

MIME::MediaType.new("text/plain").type # => "text"
MIME::MediaType.new("foo").type        # => "foo"
View source