Class: Ferrum::Network::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/ferrum/network/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page, params) ⇒ Response

Returns a new instance of Response.



8
9
10
11
12
# File 'lib/ferrum/network/response.rb', line 8

def initialize(page, params)
  @page = page
  @params = params
  @response = params["response"] || params["redirectResponse"]
end

Instance Attribute Details

#body_sizeObject

Returns the value of attribute body_size.



6
7
8
# File 'lib/ferrum/network/response.rb', line 6

def body_size
  @body_size
end

Instance Method Details

#==(other) ⇒ Object



68
69
70
# File 'lib/ferrum/network/response.rb', line 68

def ==(other)
  id == other.id
end

#bodyObject



55
56
57
58
59
60
61
62
# File 'lib/ferrum/network/response.rb', line 55

def body
  @body ||= begin
    body, encoded = @page
                      .command("Network.getResponseBody", requestId: id)
                      .values_at("body", "base64Encoded")
    encoded ? Base64.decode64(body) : body
  end
end

#content_typeObject



42
43
44
# File 'lib/ferrum/network/response.rb', line 42

def content_type
  @content_type ||= headers.find { |k, _| k.downcase == "content-type" }&.last&.sub(/;.*\z/, "")
end

#headersObject



30
31
32
# File 'lib/ferrum/network/response.rb', line 30

def headers
  @response["headers"]
end

#headers_sizeObject



34
35
36
# File 'lib/ferrum/network/response.rb', line 34

def headers_size
  @response["encodedDataLength"]
end

#idObject



14
15
16
# File 'lib/ferrum/network/response.rb', line 14

def id
  @params["requestId"]
end

#inspectObject



72
73
74
# File 'lib/ferrum/network/response.rb', line 72

def inspect
  %(#<#{self.class} @params=#{@params.inspect} @response=#{@response.inspect}>)
end

#main?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/ferrum/network/response.rb', line 64

def main?
  @page.network.response == self
end

#statusObject



22
23
24
# File 'lib/ferrum/network/response.rb', line 22

def status
  @response["status"]
end

#status_textObject



26
27
28
# File 'lib/ferrum/network/response.rb', line 26

def status_text
  @response["statusText"]
end

#typeObject



38
39
40
# File 'lib/ferrum/network/response.rb', line 38

def type
  @params["type"]
end

#urlObject



18
19
20
# File 'lib/ferrum/network/response.rb', line 18

def url
  @response["url"]
end