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 : String = Multipart.generate_boundary)
Creates a new
Multipart::Builderwhich writes the generated multipart message toio, using the multipart boundaryboundary.
Instance Method Summary
-
#body_part(headers : HTTP::Headers, string : String) : Nil
Appends a body part to the multipart message with the givenheaders andstring.
-
#body_part(headers : HTTP::Headers, data : Bytes) : Nil
Appends a body part to the multipart message with the givenheaders anddata.
-
#body_part(headers : HTTP::Headers, body_io : IO) : Nil
Appends a body part to the multipart message with the givenheaders and data frombody_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 givenheaders.
-
#body_part(headers : HTTP::Headers) : Nil
Appends a body part to the multipart message with the givenheaders and no body data.
- #boundary : String
-
#content_type(subtype : String = "mixed") : String
Returns a content type header with multipart subtypesubtype, and boundary parameter added.
-
#epilogue(string : String) : Nil
Appendsstring to the epilogue segment of the multipart message.
-
#epilogue(data : Bytes) : Nil
Appendsdata to the epilogue segment of the multipart message.
-
#epilogue(epilogue_io : IO) : Nil
Appendspreamble_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 : Nil
Finalizes the multipart message, this method must be called to properly end the multipart message.
-
#preamble(string : String) : Nil
Appendsstring to the preamble segment of the multipart message.
-
#preamble(data : Bytes) : Nil
Appendsdata to the preamble segment of the multipart message.
-
#preamble(preamble_io : IO) : Nil
Appendspreamble_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, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new,
unsafe_construct(address : Pointer, *args, **opts) : self
unsafe_construct
Class methods inherited from class Reference
pre_initialize(address : Pointer)
pre_initialize
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 : String | IO, root : String)from_json(string_or_io : String | IO) from_json, from_yaml(string_or_io : String | IO) from_yaml
Macros inherited from class Object
class_getter(*names, &block)
class_getter,
class_getter!(*names)
class_getter!,
class_getter?(*names, &block)
class_getter?,
class_property(*names, &block)
class_property,
class_property!(*names)
class_property!,
class_property?(*names, &block)
class_property?,
class_setter(*names)
class_setter,
def_clone
def_clone,
def_equals(*fields)
def_equals,
def_equals_and_hash(*fields)
def_equals_and_hash,
def_hash(*fields)
def_hash,
delegate(*methods, to object)
delegate,
forward_missing_to(delegate)
forward_missing_to,
getter(*names, &block)
getter,
getter!(*names)
getter!,
getter?(*names, &block)
getter?,
property(*names, &block)
property,
property!(*names)
property!,
property?(*names, &block)
property?,
setter(*names)
setter
Constructor Detail
Creates a newMultipart::Builder which writes the generated multipart
message toio, using the multipart boundaryboundary.
Instance Method Detail
Appends a body part to the multipart message with the givenheaders
andstring. Throws if#finish or#epilogue is called before this
method.
Appends a body part to the multipart message with the givenheaders
anddata. Throws if#finish or#epilogue is called before this
method.
Appends a body part to the multipart message with the givenheaders
and data frombody_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 givenheaders. Throws if#finish or
#epilogue is called before this method.
Appends a body part to the multipart message with the givenheaders
and no body data. Throws is#finish or#epilogue is called before
this method.
Returns a content type header with multipart subtypesubtype, 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"
Appendsstring 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.
Appendsdata 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.
Appendspreamble_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.
Appendsstring 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.
Appendsdata 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.
Appendspreamble_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.