class Tweakphoeus::CookieJar

Cookie manager

Public Class Methods

new() click to toggle source
# File lib/tweakphoeus/cookie_jar.rb, line 10
def initialize
  @cookie_jar = {}
end

Public Instance Methods

add_cookies(host, key, value) click to toggle source
# File lib/tweakphoeus/cookie_jar.rb, line 45
def add_cookies(host, key, value)
  domain = get_domain(host)
  @cookie_jar[domain] ||= {}
  @cookie_jar[domain][key] = value
end
obtain_cookies(response) click to toggle source
# File lib/tweakphoeus/cookie_jar.rb, line 33
def obtain_cookies(response)
  set_cookies_field = [response.headers['Set-Cookie']].compact

  set_cookies_field.each do |cookie|
    key, value = cookie.match(/^([^=]+)=(.+)/).to_a[1..]
    domain = cookie.match(/Domain=([^;]+)/)&.at(1)&.gsub(/^\./, '')

    domain = get_domain(response.request.url) if domain.nil
    set_cookie(domain, key, value)
  end
end
purge_bad_cookies(cookies) click to toggle source
# File lib/tweakphoeus/cookie_jar.rb, line 14
def purge_bad_cookies(cookies)
  cookies.reject { |cookie| cookie.first.last == '""' }
end

Private Instance Methods