File: chain.rb

package info (click to toggle)
libwww-mechanize-ruby 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 956 kB
  • ctags: 883
  • sloc: ruby: 6,621; makefile: 4
file content (33 lines) | stat: -rw-r--r-- 938 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
require 'mechanize/chain/handler'
require 'mechanize/chain/uri_resolver'
require 'mechanize/chain/parameter_resolver'
require 'mechanize/chain/request_resolver'
require 'mechanize/chain/custom_headers'
require 'mechanize/chain/connection_resolver'
require 'mechanize/chain/ssl_resolver'
require 'mechanize/chain/pre_connect_hook'
require 'mechanize/chain/auth_headers'
require 'mechanize/chain/header_resolver'
require 'mechanize/chain/response_body_parser'
require 'mechanize/chain/response_header_handler'
require 'mechanize/chain/response_reader'
require 'mechanize/chain/body_decoding_handler'

class Mechanize
  class Chain
    def initialize(list)
      @list = list
      @list.each { |l| l.chain = self }
    end

    def handle(request)
      @list.first.handle(self, request)
    end

    def pass(obj, request)
      next_link = @list[@list.index(obj) + 1]
      next_link.handle(self, request) if next_link
    end
  end
end