I was getting a weird error from Net::HTTPResponse, and noticed that a couple methods had some bad nil checking.
In read_body, it sets @body = nil and then later on calls string methods on it like @body.force_encoding. Right after you set @read = true you should add this code: return if @body.nil?.
Then, the weird error was from stream_check:
undefined method `closed?' for nil:NilClass (NoMethodError)
raise IOError, 'attempt to read body out of block' if @socket.closed?
Since you set @socket = nil in reading_body, the stream_check method should be:
def stream_check
raise IOError, 'attempt to read body out of block' if @socket.nil? || @socket.closed?
end
I was getting a weird error from Net::HTTPResponse, and noticed that a couple methods had some bad nil checking.
In
read_body, it sets@body = niland then later on calls string methods on it like@body.force_encoding. Right after you set@read = trueyou should add this code:return if @body.nil?.Then, the weird error was from
stream_check:Since you set
@socket = nilinreading_body, thestream_checkmethod should be: