class Async::IO::Stream

def read_until(pattern, offset = 0)

Returns:
  • (String) - The contents of the stream up until the pattern, which is consumed but not returned.

Parameters:
  • pattern (String) -- The pattern to match.
def read_until(pattern, offset = 0)
	until index = @read_buffer.index(pattern, offset)
		offset = @read_buffer.size
		
		return unless fill_read_buffer
	end
	
	@read_buffer.freeze
	matched = @read_buffer.byteslice(0, index)
	@read_buffer = @read_buffer.byteslice(index+pattern.bytesize, @read_buffer.bytesize)
	
	return matched
end