struct MIME::MediaType

Overview

A MediaType describes a MIME content type with optional parameters.

Defined in:

mime/media_type.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from struct Struct

==(other) : Bool ==, hash(hasher) hash, inspect(io : IO) : Nil inspect, pretty_print(pp) : Nil pretty_print, to_s(io : IO) : Nil to_s

Instance methods inherited from struct Value

==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash
hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil!
not_nil!
, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io, root : String)
from_json(string_or_io)
from_json
, from_yaml(string_or_io : String | IO) from_yaml

Constructor Detail

def self.new(media_type : String, params : Hash(String, String) = {} of String => String) #

Creates a new MediaType instance.


[View source]
def self.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]

Class Method Detail

def self.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.


[View source]

Instance Method Detail

def [](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]
def []=(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]
def []?(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

[View source]
def each_parameter(&block : String, String -> _) : Nil #

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


[View source]
def 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]
def 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"

[View source]
def 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]
def media_type : String #

[View source]
def sub_type : String | Nil #

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]
def to_s(io : IO) : Nil #
Description copied from struct Struct

Same as #inspect(io).


[View source]
def 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]