Class: TourProxy
- Inherits:
-
Object
- Object
- TourProxy
- Defined in:
- lib/tour_proxy.rb
Instance Method Summary collapse
-
#dump_request(request) ⇒ Object
Dumps an HTTPRequest object.
-
#dump_response(response) ⇒ Object
Dumps an HTTPResponse object.
-
#initialize(options = {}) ⇒ TourProxy
constructor
Initialize the proxy object.
- #log_request_as_webrat(request) ⇒ Object
- #shutdown ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ TourProxy
Initialize the proxy object.
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/tour_proxy.rb', line 11 def initialize(={}) @server = nil @output_buffer = [:output_buffer] || STDOUT @server = WEBrick::HTTPProxyServer.new( :Port => [:port] || 8080, :RequestCallback => Proc.new do |req,res| log_request_as_webrat(req) # dump_request(req) # puts(("<" * 100) + " END CALLBACK") end ) end |
Instance Method Details
#dump_request(request) ⇒ Object
Dumps an HTTPRequest object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/tour_proxy.rb', line 40 def dump_request(request) return unless @output_buffer puts "> dump_request" terms = %w(request_uri request_line raw_header body) longest = terms.map(&:size).max @output_buffer.puts '-' * 80 @output_buffer.puts "Request:" terms.each do |term| @output_buffer.puts " %#{longest}s:" % [term] # , request.send(term).to_s.length] end @output_buffer.puts '-' * 80 @output_buffer.flush puts "< dump_request" end |
#dump_response(response) ⇒ Object
Dumps an HTTPResponse object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/tour_proxy.rb', line 57 def dump_response(response) return unless @output_buffer puts "> dump_response" terms = %w() longest = terms.map(&:size).max @output_buffer.puts '-' * 80 @output_buffer.puts "Response:" terms.each do |term| @output_buffer.puts " %#{longest}s: %s" % [term, response.send(term).to_s] end @output_buffer.puts '-' * 80 @output_buffer.flush puts "< dump_response" end |
#log_request_as_webrat(request) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/tour_proxy.rb', line 24 def log_request_as_webrat(request) return unless @output_buffer # puts "> log_request_as_webrat" body = request.body if body items = body.split(/&/) pairs = items.map{ |e| e.split(/=/,2)} hash = Hash[pairs] @output_buffer.puts "visit '#{request.request_uri}', :#{request.request_method.downcase}, #{hash.inspect}" else @output_buffer.puts "visit '#{request.request_uri}', :#{request.request_method.downcase}" end # puts "< log_request_as_webrat" end |
#shutdown ⇒ Object
77 78 79 |
# File 'lib/tour_proxy.rb', line 77 def shutdown @server.shutdown end |
#start ⇒ Object
73 74 75 |
# File 'lib/tour_proxy.rb', line 73 def start @server.start end |