class HTTP::Message::Body::Parts
Attributes
size[R]
sizes[R]
Public Class Methods
new()
click to toggle source
# File lib/httpclient/http.rb, line 609 def initialize @body = [] @sizes = {} @size = 0 # total @as_stream = false end
Public Instance Methods
add(part)
click to toggle source
# File lib/httpclient/http.rb, line 616 def add(part) if Message.file?(part) @as_stream = true @body << part if part.respond_to?(:lstat) sz = part.lstat.size add_size(part, sz) elsif part.respond_to?(:size) if sz = part.size add_size(part, sz) else @sizes.clear @size = nil end else # use chunked upload @sizes.clear @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
parts()
click to toggle source
# File lib/httpclient/http.rb, line 644 def parts if @as_stream @body else [@body.join] end end
Private Instance Methods
add_size(part, sz)
click to toggle source
# File lib/httpclient/http.rb, line 654 def add_size(part, sz) if @size @sizes[part] = sz @size += sz end end