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.



979
980
981
982
983
# File 'lib/puppeteer/page.rb', line 979

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

Instance Method Details

#readObject



985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
# File 'lib/puppeteer/page.rb', line 985

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