Class: Puppeteer::Page::ProtocolStreamReader

Inherits:
Object
  • Object
show all
Defined in:
lib/puppeteer/page.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:, handle:, path:) ⇒ ProtocolStreamReader

Returns a new instance of ProtocolStreamReader.



960
961
962
963
964
# File 'lib/puppeteer/page.rb', line 960

def initialize(client:, handle:, path:)
  @client = client
  @handle = handle
  @path = path
end

Instance Method Details

#readObject



966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
# File 'lib/puppeteer/page.rb', line 966

def read
  out = StringIO.new
  File.open(@path, 'w') do |file|
    eof = false
    until eof
      response = @client.send_message('IO.read', handle: @handle)
      eof = response['eof']
      data =
        if response['base64Encoded']
          Base64.decode64(response['data'])
        else
          response['data']
        end
      out.write(data)
      file.write(data)
    end
  end
  @client.send_message('IO.close', handle: @handle)
  out.read
end