Parent

Methods

Included Modules

Class Index [+]

Quicksearch

Mechanize::Chain::ResponseReader

Public Class Methods

new(response) click to toggle source
   # File lib/mechanize/chain/response_reader.rb, line 6
6:       def initialize(response)
7:         @response = response
8:       end

Public Instance Methods

handle(ctx, params) click to toggle source
    # File lib/mechanize/chain/response_reader.rb, line 10
10:       def handle(ctx, params)
11:         params[:response] = @response
12:         body = StringIO.new
13:         total = 0
14:         @response.read_body { |part|
15:           total += part.length
16:           body.write(part)
17:           Mechanize.log.debug("Read #{total} bytes") if Mechanize.log
18:         }
19:         body.rewind
20: 
21:         res_klass = Net::HTTPResponse::CODE_TO_OBJ[@response.code.to_s]
22:         raise ResponseCodeError.new(@response) unless res_klass
23: 
24:         # Net::HTTP ignores EOFError if Content-length is given, so we emulate it here.
25:         unless res_klass <= Net::HTTPRedirection
26:           raise EOFError if (!params[:request].is_a?(Net::HTTP::Head)) && @response.content_length() && @response.content_length() != total
27:         end
28: 
29:         @response.each_header { |k,v|
30:           Mechanize.log.debug("response-header: #{ k } => #{ v }")
31:         } if Mechanize.log
32: 
33:         params[:response_body] = body
34:         params[:res_klass] = res_klass
35:         super
36:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.