Class: EzClient::Request::RedirectCookieState

Inherits:
Object
  • Object
show all
Defined in:
lib/ezclient/request.rb

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ RedirectCookieState

Returns a new instance of RedirectCookieState.



14
15
16
17
18
# File 'lib/ezclient/request.rb', line 14

def initialize(response)
  self.cookie_jar = HTTP::CookieJar.new
  self.expired_cookie_names = []
  store(response)
end

Instance Method Details

#apply_to(request) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/ezclient/request.rb', line 29

def apply_to(request)
  cookies = cookie_header_for(request)

  if cookies.empty?
    request.headers.delete(HTTP::Headers::COOKIE)
  else
    request.headers.set(HTTP::Headers::COOKIE, cookies)
  end
end

#store(response) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/ezclient/request.rb', line 20

def store(response)
  response.headers.get(HTTP::Headers::SET_COOKIE).each do |set_cookie|
    HTTP::Cookie.parse(set_cookie, response.request.uri).each do |cookie|
      expired_cookie_names << cookie.name if cookie.expired?
      cookie_jar.add(cookie)
    end
  end
end