class HTTP::Response::Streamer

Public Class Methods

new(str, encoding: Encoding::BINARY) click to toggle source
# File lib/webmock/http_lib_adapters/http_rb/streamer.rb, line 6
def initialize(str, encoding: Encoding::BINARY)
  @io = StringIO.new str
  @encoding = encoding
end

Public Instance Methods

close() click to toggle source
# File lib/webmock/http_lib_adapters/http_rb/streamer.rb, line 31
def close
  @io.close
end
finished_request?() click to toggle source
# File lib/webmock/http_lib_adapters/http_rb/streamer.rb, line 35
def finished_request?
  @io.eof?
end
readpartial(size = nil, outbuf = nil) click to toggle source
# File lib/webmock/http_lib_adapters/http_rb/streamer.rb, line 11
def readpartial(size = nil, outbuf = nil)
  unless size
    if defined?(HTTP::Connection::BUFFER_SIZE)
      size = HTTP::Connection::BUFFER_SIZE
    elsif defined?(HTTP::Client::BUFFER_SIZE)
      size = HTTP::Client::BUFFER_SIZE
    end
  end

  chunk = @io.read(size, outbuf)

  # HTTP.rb 6.0+ expects EOFError at end-of-stream instead of nil
  if chunk.nil?
    raise EOFError if HTTP::VERSION >= "6.0.0"
    return nil
  end

  chunk.force_encoding(@encoding)
end
sequence_id() click to toggle source
# File lib/webmock/http_lib_adapters/http_rb/streamer.rb, line 39
def sequence_id
  -1
end