Sha256: cd5e8395d65961c9fdd0bd0283ad7009858894b04437b9b8d8b4086eb828660f

Contents?: true

Size: 1.32 KB

Versions: 4

Compression:

Stored size: 1.32 KB

Contents

class Mechanize
  class Chain
    class ResponseBodyParser
      include Mechanize::Handler

      def initialize(pluggable_parser, watch_for_set)
        @pluggable_parser = pluggable_parser
        @watch_for_set = watch_for_set
      end

      def handle(ctx, params)
        response = params[:response]
        response_body = params[:response_body]
        uri = params[:uri]

        content_type = nil
        unless response['Content-Type'].nil?
          data = response['Content-Type'].match(/^([^;]*)/)
          content_type = data[1].downcase.split(',')[0] unless data.nil?
        end

        # Find our pluggable parser
        params[:page] = @pluggable_parser.parser(content_type).new(
                                                                   uri,
                                                                   response,
                                                                   response_body,
                                                                   response.code
                                                                   ) { |parser|
          parser.mech = params[:agent] if parser.respond_to? :mech=
          if parser.respond_to?(:watch_for_set=) && @watch_for_set
            parser.watch_for_set = @watch_for_set
          end
        }
        super
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 4 rubygems

Version Path
kitamomonga-mechanize-0.9.3.20090724215219 lib/mechanize/chain/response_body_parser.rb
tenderlove-mechanize-0.9.3.20090911221705 lib/mechanize/chain/response_body_parser.rb
domo-0.0.4 vendor/bundle/ruby/1.9.1/gems/mechanize-1.0.0/lib/mechanize/chain/response_body_parser.rb
mechanize-1.0.0 lib/mechanize/chain/response_body_parser.rb