1#!ruby -d 2require "webrick/cgi" 3 4class TestApp < WEBrick::CGI 5 def do_GET(req, res) 6 res["content-type"] = "text/plain" 7 if (p = req.path_info) && p.length > 0 8 res.body = p 9 elsif (q = req.query).size > 0 10 res.body = q.keys.sort.collect{|key| 11 q[key].list.sort.collect{|v| 12 "#{key}=#{v}" 13 }.join(", ") 14 }.join(", ") 15 elsif %r{/$} =~ req.request_uri.to_s 16 res.body = "" 17 res.body << req.request_uri.to_s << "\n" 18 res.body << req.script_name 19 elsif !req.cookies.empty? 20 res.body = req.cookies.inject(""){|result, cookie| 21 result << "%s=%s\n" % [cookie.name, cookie.value] 22 } 23 res.cookies << WEBrick::Cookie.new("Customer", "WILE_E_COYOTE") 24 res.cookies << WEBrick::Cookie.new("Shipping", "FedEx") 25 else 26 res.body = req.script_name 27 end 28 end 29 30 def do_POST(req, res) 31 do_GET(req, res) 32 end 33end 34 35cgi = TestApp.new 36cgi.start 37