Class: Ferrum::Cookies

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

Defined Under Namespace

Classes: Cookie

Instance Method Summary collapse

Constructor Details

#initialize(page) ⇒ Cookies

Returns a new instance of Cookies.



53
54
55
# File 'lib/ferrum/cookies.rb', line 53

def initialize(page)
  @page = page
end

Instance Method Details

#[](name) ⇒ Object



62
63
64
# File 'lib/ferrum/cookies.rb', line 62

def [](name)
  all[name]
end

#allObject



57
58
59
60
# File 'lib/ferrum/cookies.rb', line 57

def all
  cookies = @page.command("Network.getAllCookies")["cookies"]
  cookies.map { |c| [c["name"], Cookie.new(c)] }.to_h
end

#clearObject



93
94
95
96
# File 'lib/ferrum/cookies.rb', line 93

def clear
  @page.command("Network.clearBrowserCookies")
  true
end

#remove(name:, **options) ⇒ Object

Supports :url, :domain and :path options



82
83
84
85
86
87
88
89
90
91
# File 'lib/ferrum/cookies.rb', line 82

def remove(name:, **options)
  raise "Specify :domain or :url option" if !options[:domain] && !options[:url] && !default_domain

  options = options.merge(name: name)
  options[:domain] ||= default_domain

  @page.command("Network.deleteCookies", **options)

  true
end

#set(name: nil, value: nil, **options) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/ferrum/cookies.rb', line 66

def set(name: nil, value: nil, **options)
  cookie = options.dup
  cookie[:name]   ||= name
  cookie[:value]  ||= value
  cookie[:domain] ||= default_domain

  cookie[:httpOnly] = cookie.delete(:httponly) if cookie.key?(:httponly)
  cookie[:sameSite] = cookie.delete(:samesite) if cookie.key?(:samesite)

  expires = cookie.delete(:expires).to_i
  cookie[:expires] = expires if expires > 0

  @page.command("Network.setCookie", **cookie)["success"]
end