class MIME::Multipart::Builder
Overview
Builds a multipart MIME message.
Example
require "mime/multipart"
io = IO::Memory.new # This is a stub. Actually, any IO can be used.
multipart = MIME::Multipart::Builder.new(io)
multipart.body_part HTTP::Headers{"Content-Type" => "text/plain"}, "hello!"
multipart.finish
io.to_s # => "----------------------------DTf61dRTHYzprx7rwVQhTWr7\r\nContent-Type: text/plain\r\n\r\nhello!\r\n----------------------------DTf61dRTHYzprx7rwVQhTWr7--"
Defined in:
mime/multipart/builder.crConstructors
-
.new(io : IO, boundary = Multipart.generate_boundary)
Creates a new
Multipart::Builder
which writes the generated multipart message to io, using the multipart boundary boundary.
Instance Method Summary
-
#body_part(headers : HTTP::Headers, string : String)
Appends a body part to the multipart message with the given headers and string.
-
#body_part(headers : HTTP::Headers, data : Bytes)
Appends a body part to the multipart message with the given headers and data.
-
#body_part(headers : HTTP::Headers, body_io : IO)
Appends a body part to the multipart message with the given headers and data from body_io.
-
#body_part(headers : HTTP::Headers, &)
Yields an IO that can be used to write to a body part which is appended to the multipart message with the given headers.
-
#body_part(headers : HTTP::Headers)
Appends a body part to the multipart message with the given headers and no body data.
- #boundary : String
-
#content_type(subtype = "mixed")
Returns a content type header with multipart subtype subtype, and boundary parameter added.
-
#epilogue(string : String)
Appends string to the epilogue segment of the multipart message.
-
#epilogue(data : Bytes)
Appends data to the epilogue segment of the multipart message.
-
#epilogue(epilogue_io : IO)
Appends preamble_io to the epilogue segment of the multipart message.
-
#epilogue(&)
Yields an IO that can be used to append to the epilogue of the multipart message.
-
#finish
Finalizes the multipart message, this method must be called to properly end the multipart message.
-
#preamble(string : String)
Appends string to the preamble segment of the multipart message.
-
#preamble(data : Bytes)
Appends data to the preamble segment of the multipart message.
-
#preamble(preamble_io : IO)
Appends preamble_io to the preamble segment of the multipart message.
-
#preamble(&)
Yields an IO that can be used to append to the preamble of the multipart message.
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new
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
hash(hasher) hash, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, 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)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml 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
Creates a new Multipart::Builder
which writes the generated multipart
message to io, using the multipart boundary boundary.
Instance Method Detail
Appends a body part to the multipart message with the given headers
and string. Throws if #finish
or #epilogue
is called before this
method.
Appends a body part to the multipart message with the given headers
and data. Throws if #finish
or #epilogue
is called before this
method.
Appends a body part to the multipart message with the given headers
and data from body_io. Throws if #finish
or #epilogue
is called
before this method.
Yields an IO that can be used to write to a body part which is appended
to the multipart message with the given headers. Throws if #finish
or
#epilogue
is called before this method.
Appends a body part to the multipart message with the given headers
and no body data. Throws is #finish
or #epilogue
is called before
this method.
Returns a content type header with multipart subtype subtype, and boundary parameter added.
require "mime/multipart"
io = IO::Memory.new # This is a stub. Actually, any IO can be used.
builder = MIME::Multipart::Builder.new(io, "a4VF")
builder.content_type("mixed") # => "multipart/mixed; boundary=a4VF"
Appends string to the epilogue segment of the multipart message. Throws
if #finish
is called before this method, or no body parts have been
appended.
Can be called multiple times to append to the epilogue multiple times.
Appends data to the epilogue segment of the multipart message. Throws
if #finish
is called before this method, or no body parts have been
appended.
Can be called multiple times to append to the epilogue multiple times.
Appends preamble_io to the epilogue segment of the multipart message.
Throws if #finish
is called before this method, or no body parts have
been appended.
Can be called multiple times to append to the epilogue multiple times.
Yields an IO that can be used to append to the epilogue of the multipart
message. Throws if #finish
is called before this method, or no body
parts have been appended.
Can be called multiple times to append to the preamble multiple times.
Finalizes the multipart message, this method must be called to properly end the multipart message.
Appends string to the preamble segment of the multipart message. Throws
if #body_part
is called before this method.
Can be called multiple times to append to the preamble multiple times.
Appends data to the preamble segment of the multipart message. Throws
if #body_part
is called before this method.
Can be called multiple times to append to the preamble multiple times.
Appends preamble_io to the preamble segment of the multipart message.
Throws if #body_part
is called before this method.
Can be called multiple times to append to the preamble multiple times.
Yields an IO that can be used to append to the preamble of the multipart
message. Throws if #body_part
is called before this method.
Can be called multiple times to append to the preamble multiple times.