Sha256: da44c69c48dc583fd3887236922ea4d27b3030fa5d12296f96aefcf60aa7fecc

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

class Mechanize
  class Chain
    class HeaderResolver
      include Mechanize::Handler
      def initialize(keep_alive, keep_alive_time, cookie_jar, user_agent, headers)
        @keep_alive = keep_alive
        @keep_alive_time = keep_alive_time
        @cookie_jar = cookie_jar
        @user_agent = user_agent
        @headers = headers
      end

      def handle(ctx, params)
        uri = params[:uri]
        referer = params[:referer]
        request = params[:request]

        if @keep_alive
          request['Connection'] = 'keep-alive'
          request['Keep-Alive'] = @keep_alive_time.to_s
        else
          request['Connection'] = 'close'
        end
        request['Accept-Encoding'] = 'gzip,identity'
        request['Accept-Language'] = 'en-us,en;q=0.5'
        host = "#{uri.host}#{[80, 443].include?(uri.port.to_i) ? '' : ':' + uri.port.to_s}"
        request['Host'] = host
        request['Accept-Charset'] = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'

        unless @cookie_jar.empty?(uri)
          cookies = @cookie_jar.cookies(uri)
          cookie = cookies.length > 0 ? cookies.join("; ") : nil
          request.add_field('Cookie', cookie)
        end

        # Add Referer header to request
        if referer && referer.uri
          request['Referer'] = referer.uri.to_s
        end

        # Add User-Agent header to request
        request['User-Agent'] = @user_agent if @user_agent

        @headers.each do |k,v|
          request[k] = v
        end if request
        super
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
kitamomonga-mechanize-0.9.3.20090724215219 lib/mechanize/chain/header_resolver.rb
tenderlove-mechanize-0.9.3.20090911221705 lib/mechanize/chain/header_resolver.rb