struct

MIME::MediaType

Inherits Struct / Value / Object

A MediaType describes a MIME content type with optional parameters.

Constructors

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

Creates a new MediaType instance.

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.

Source

Class methods

parse?(string : String) : MediaType | Nil

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.

Source

Instance 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
Source
[]=(key : String, value : String) : 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"
Source
[]?(key : String) : String | Nil

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
Source
each_parameter

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

Source
each_parameter

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

Source
fetch(key : String, default : T) : String | T forall T

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"
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"
Source
media_type
Source
sub_type

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
Source
to_s(io : IO) : Nil

Same as #inspect(io).

Source
type

First component of media_type.

require "mime/media_type"

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