struct MIME::MediaType
inherits Struct
¶
A MediaType
describes a MIME content type with optional parameters.
Class methods¶
.parse(string : String) : MediaType
¶
(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.
.parse?(string : String) : MediaType?
¶
(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.
Methods¶
#[](key : String) : String
¶
(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
#[]=(key : String, value : String)
¶
(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"
#[]?(key : String) : String?
¶
(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
#each_parameter(&block : String, String -> _) : Nil
¶
(&block : String, String -> _) : Nil
Calls the given block for each parameter and passes in the key and the value.
#each_parameter : Iterator(Tuple(String, String))
¶
: Iterator(Tuple(String, String))
Returns an iterator over the parameter which behaves like an Iterator
returning a Tuple
of key and value.
#fetch(key : String, default)
¶
(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"
#fetch(key : String, &block : String -> _)
¶
(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"
#sub_type : String?
¶
: 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
#type : String
¶
: String
First component of media_type
.
require "mime/media_type"
MIME::MediaType.new("text/plain").type # => "text"
MIME::MediaType.new("foo").type # => "foo"