Class: PXMyPortal::Cookie

Inherits:
Object
  • Object
show all
Defined in:
lib/pxmyportal/cookie.rb

Instance Method Summary collapse

Constructor Details

#initialize(jar_path: nil, logger:) ⇒ Cookie



5
6
7
8
9
10
# File 'lib/pxmyportal/cookie.rb', line 5

def initialize(jar_path: nil, logger:)
  @jar_path = jar_path || File.join(PXMyPortal::XDG::CACHE_DIR, "cookie-jar")
  @logger = logger

  @jar             = HTTP::CookieJar.new
end

Instance Method Details

#accept(response, url:) ⇒ Object

Previously accept_cookie.



17
18
19
20
# File 'lib/pxmyportal/cookie.rb', line 17

def accept(response, url:)
  response.get_fields("Set-Cookie").each { |value| @jar.parse(value, url) }
  @jar.save(jar_path)
end

#jar_pathObject

Previously cookie_jar_path.



23
24
25
26
27
28
29
30
31
# File 'lib/pxmyportal/cookie.rb', line 23

def jar_path
  @created_jar_path and return @created_jar_path
  dir = File.dirname(@jar_path)
  unless Dir.exist?(dir)
    @logger.info("creating cache directory")
    Dir.mkdir(dir)
  end
  @created_jar_path = @jar_path
end

#loadObject



12
13
14
# File 'lib/pxmyportal/cookie.rb', line 12

def load
  @jar.load(@jar_path) if File.exist?(@jar_path)
end

#provide(request, url:) ⇒ Object

Previously provide_cookie.



34
35
36
# File 'lib/pxmyportal/cookie.rb', line 34

def provide(request, url:)
  request["Cookie"] = HTTP::Cookie.cookie_value(@jar.cookies(url))
end