in lib/openai/internal/transport/pooled_net_requester.rb [57:84]
def build_request(request, &blk)
method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
req = Net::HTTPGenericRequest.new(
method.to_s.upcase,
!body.nil?,
method != :head,
URI(url.to_s)
)
headers.each { req[_1] = _2 }
case body
in nil
nil
in String
req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
req.body_stream = OpenAI::Internal::Util::ReadIOAdapter.new(body, &blk)
in StringIO
req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
req.body_stream = OpenAI::Internal::Util::ReadIOAdapter.new(body, &blk)
in Pathname | IO | Enumerator
req["transfer-encoding"] ||= "chunked" unless req["content-length"]
req.body_stream = OpenAI::Internal::Util::ReadIOAdapter.new(body, &blk)
end
[req, req.body_stream&.method(:close)]
end