Class: Ferrum::Cookies
- Inherits:
-
Object
- Object
- Ferrum::Cookies
- Includes:
- Enumerable
- Defined in:
- lib/ferrum/cookies.rb,
lib/ferrum/cookies/cookie.rb
Defined Under Namespace
Classes: Cookie
Instance Method Summary collapse
-
#[](name) ⇒ Cookie?
Returns cookie.
-
#all ⇒ Hash{String => Cookie}
Returns cookies hash.
-
#clear ⇒ true
Removes all cookies for current page.
-
#each {|cookie| ... } ⇒ Enumerator
Enumerates over all cookies.
-
#initialize(page) ⇒ Cookies
constructor
A new instance of Cookies.
-
#remove(name:, **options) ⇒ Object
Removes given cookie.
-
#set(options) ⇒ Object
Sets a cookie.
Constructor Details
#initialize(page) ⇒ Cookies
Returns a new instance of Cookies.
9 10 11 |
# File 'lib/ferrum/cookies.rb', line 9 def initialize(page) @page = page end |
Instance Method Details
#[](name) ⇒ Cookie?
Returns cookie.
71 72 73 |
# File 'lib/ferrum/cookies.rb', line 71 def [](name) find { || .name == name } end |
#all ⇒ Hash{String => Cookie}
Returns cookies hash.
48 49 50 51 52 |
# File 'lib/ferrum/cookies.rb', line 48 def all each.to_h do || [.name, ] end end |
#clear ⇒ true
Removes all cookies for current page.
167 168 169 170 |
# File 'lib/ferrum/cookies.rb', line 167 def clear @page.command("Network.clearBrowserCookies") true end |
#each {|cookie| ... } ⇒ Enumerator
Enumerates over all cookies.
25 26 27 28 29 30 31 32 33 |
# File 'lib/ferrum/cookies.rb', line 25 def each return enum_for(__method__) unless block_given? = @page.command("Network.getAllCookies")["cookies"] .each do |c| yield Cookie.new(c) end end |
#remove(name:, **options) ⇒ Object
Removes given cookie.
148 149 150 151 152 153 154 155 156 157 |
# File 'lib/ferrum/cookies.rb', line 148 def remove(name:, **) raise "Specify :domain or :url option" if ![:domain] && ![:url] && !default_domain = .merge(name: name) [:domain] ||= default_domain @page.command("Network.deleteCookies", **) true end |
#set(options) ⇒ Object
Sets a cookie.
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/ferrum/cookies.rb', line 117 def set() = ( .is_a?(Cookie) ? .attributes : ).dup.transform_keys(&:to_sym) [:domain] ||= default_domain [:httpOnly] = .delete(:httponly) if .key?(:httponly) [:sameSite] = .delete(:samesite) if .key?(:samesite) expires = .delete(:expires).to_i [:expires] = expires if expires.positive? @page.command("Network.setCookie", **)["success"] end |