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
34
35
36
|
# File 'lib/mechanize/progressbar/mechanize_1_0.rb', line 6
def handle(ctx, params)
params[:response] = @response
body = StringIO.new
total = 0
mpbar = MechanizeProgressBar.new(params[:agent], params[:request], params[:response])
@response.read_body { |part|
total += part.length
body.write(part)
Mechanize.log.debug("Read #{total} bytes") if Mechanize.log && !mpbar.suppress_logger?
mpbar.inc(part.length)
}
body.rewind
mpbar.finish
Mechanize.log.debug("Read #{total} bytes") if Mechanize.log && !mpbar.suppress_logger?
res_klass = Net::HTTPResponse::CODE_TO_OBJ[@response.code.to_s]
raise ResponseCodeError.new(@response) unless res_klass
unless res_klass <= Net::HTTPRedirection
raise EOFError if (!params[:request].is_a?(Net::HTTP::Head)) && @response.content_length() && @response.content_length() != total
end
@response. { |k,v|
Mechanize.log.debug("response-header: #{ k } => #{ v }")
} if Mechanize.log
params[:response_body] = body
params[:res_klass] = res_klass
super
end
|