class TerraformLandscape::Printer

def process_stream(io)

def process_stream(io)
  buffer = StringIO.new
  begin
    block_size = 1024
    done = false
    until done
      readable_fds, = IO.select([io])
      next unless readable_fds
      readable_fds.each do |f|
        begin
          buffer << f.read_nonblock(block_size)
        rescue IO::WaitReadable # rubocop:disable Lint/HandleExceptions
          # Ignore; we'll call IO.select again
        rescue EOFError
          done = true
        end
      end
    end
  ensure
    io.close
  end
  process_string(buffer.string)
end