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.



49
50
51
# File 'lib/ferrum/cookies.rb', line 49

def initialize(page)
  @page = page
end

Instance Method Details

#[](name) ⇒ Object



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

def [](name)
  all[name]
end

#allObject



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

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

#clearObject



86
87
88
89
# File 'lib/ferrum/cookies.rb', line 86

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

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

Supports :url, :domain and :path options



75
76
77
78
79
80
81
82
83
84
# File 'lib/ferrum/cookies.rb', line 75

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



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/ferrum/cookies.rb', line 62

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

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

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