class Mechanize::Chain::ResponseHeaderHandler

Public Class Methods

new(cookie_jar) click to toggle source
# File lib/mechanize/chain/response_header_handler.rb, line 6
def initialize(cookie_jar)
  @cookie_jar = cookie_jar
end

Public Instance Methods

handle(ctx, params) click to toggle source
Calls superclass method Mechanize::Handler#handle
# File lib/mechanize/chain/response_header_handler.rb, line 10
def handle(ctx, params)
  response = params[:response]
  uri = params[:uri]
  page = params[:page]

  if page.is_a?(Page) && page.body =~ /Set-Cookie/
    page.search('//head/meta[@http-equiv="Set-Cookie"]').each do |meta|
      Cookie::parse(uri, meta['content']) { |c|
        Mechanize.log.debug("saved cookie: #{c}") if Mechanize.log
        @cookie_jar.add(uri, c)
      }
    end
  end

  (response.get_fields('Set-Cookie')||[]).each do |cookie|
    Cookie::parse(uri, cookie) { |c|
      Mechanize.log.debug("saved cookie: #{c}") if Mechanize.log
      @cookie_jar.add(uri, c)
    }
  end
  super
end