class HTTP::Message::Body::Parts
def add(part)
def add(part) if Message.file?(part) @as_stream = true @body << part if part.respond_to?(:size) if sz = part.size @size += sz else @size = nil end elsif part.respond_to?(:lstat) @size += part.lstat.size else # use chunked upload @size = nil end elsif @body[-1].is_a?(String) @body[-1] += part.to_s @size += part.to_s.bytesize if @size else @body << part.to_s @size += part.to_s.bytesize if @size end end
def initialize
def initialize @body = [] @size = 0 @as_stream = false end
def parts
def parts if @as_stream @body else [@body.join] end end