Class: Ferrum::Headers
- Inherits:
-
Object
- Object
- Ferrum::Headers
- Defined in:
- lib/ferrum/headers.rb
Overview
Manages the extra HTTP headers a page sends with its requests, via the
CDP Network.setExtraHTTPHeaders command. Setting a User-Agent or
Accept-Language header also updates the corresponding navigator
override so JavaScript sees consistent values.
Instance Method Summary collapse
-
#add(headers, permanent: true) ⇒ true
Adds given headers to already set ones.
-
#clear ⇒ true
Clear all headers.
-
#get ⇒ Hash{String => String}
Get all headers.
-
#initialize(page) ⇒ Headers
constructor
A new instance of Headers.
-
#set(headers) ⇒ true
Set given headers.
Constructor Details
#initialize(page) ⇒ Headers
Returns a new instance of Headers.
11 12 13 14 |
# File 'lib/ferrum/headers.rb', line 11 def initialize(page) @page = page @headers = {} end |
Instance Method Details
#add(headers, permanent: true) ⇒ true
Adds given headers to already set ones.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/ferrum/headers.rb', line 58 def add(headers, permanent: true) if headers["Referer"] @page.referrer = headers["Referer"] headers.delete("Referer") unless permanent end @headers.merge!(headers) user_agent = @headers["User-Agent"] accept_language = @headers["Accept-Language"] set_overrides(user_agent: user_agent, accept_language: accept_language) @page.command("Network.setExtraHTTPHeaders", headers: @headers) true end |
#clear ⇒ true
Clear all headers.
43 44 45 46 |
# File 'lib/ferrum/headers.rb', line 43 def clear @headers = {} true end |
#get ⇒ Hash{String => String}
Get all headers.
21 22 23 |
# File 'lib/ferrum/headers.rb', line 21 def get @headers end |
#set(headers) ⇒ true
Set given headers. Eventually clear all headers and set given ones.
33 34 35 36 |
# File 'lib/ferrum/headers.rb', line 33 def set(headers) clear add(headers) end |