MIME::Multipart::Builder
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--"
Constructors
Instance methods
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.