summaryrefslogtreecommitdiff
path: root/sample/webrick/demo-app.rb
diff options
context:
space:
mode:
authorgotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-07 12:22:19 +0000
committergotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-07 12:22:19 +0000
commit16291a0db719e9c174ab6890eb0c50ebef1cf8f7 (patch)
treed4ff408c0efe50815ed9c7d6561299a7a8a2c9f7 /sample/webrick/demo-app.rb
parentb33d3cfb41b459c7599486a5d5c7e45a4ce2a009 (diff)
* sample/webrick/*: new files.
* MANIFEST: add sample/webrick/* git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/webrick/demo-app.rb')
-rw-r--r--sample/webrick/demo-app.rb66
1 files changed, 66 insertions, 0 deletions
diff --git a/sample/webrick/demo-app.rb b/sample/webrick/demo-app.rb
new file mode 100644
index 0000000000..c7a2a0a6a4
--- /dev/null
+++ b/sample/webrick/demo-app.rb
@@ -0,0 +1,66 @@
+require "pp"
+
+module DemoApplication
+ def initialize(config, enctype)
+ super
+ @enctype = enctype
+ end
+
+ def do_GET(req, res)
+ if req.path_info != "/"
+ res.set_redirect(WEBrick::HTTPStatus::Found, req.script_name + "/")
+ end
+ res.body =<<-_end_of_html_
+ <HTML>
+ <FORM method="POST" enctype=#{@enctype}>
+ text: <INPUT type="text" name="text"><BR>
+ file: <INPUT type="file" name="file"><BR>
+ check:
+ <INPUT type="checkbox" name="check" value="a">a,
+ <INPUT type="checkbox" name="check" value="b">b,
+ <INPUT type="checkbox" name="check" value="c">c,
+ <BR>
+ <INPUT type="submit">
+ </FORM>
+ </HTML>
+ _end_of_html_
+ res['content-type'] = 'text/html; charset=iso-8859-1'
+ end
+
+ def do_POST(req, res)
+ if req["content-length"].to_i > 1024*10
+ raise WEBrick::HTTPStatus::Forbidden, "file size too large"
+ end
+ res.body =<<-_end_of_html_
+ <HTML>
+ <H2>Query Parameters</H2>
+ #{display_query(req.query)}
+ <A href="#{req.path}">return</A>
+ <H2>Request</H2>
+ <PRE>#{WEBrick::HTMLUtils::escape(PP::pp(req, "", 80))}</PRE>
+ <H2>Response</H2>
+ <PRE>#{WEBrick::HTMLUtils::escape(PP::pp(res, "", 80))}</PRE>
+ </HTML>
+ _end_of_html_
+ res['content-type'] = 'text/html; charset=iso-8859-1'
+ end
+
+ private
+
+ def display_query(q)
+ ret = ""
+ q.each{|key, val|
+ ret << "<H3>#{WEBrick::HTMLUtils::escape(key)}</H3>"
+ ret << "<TABLE border=1>"
+ ret << make_tr("val", val.inspect)
+ ret << make_tr("val.to_a", val.to_a.inspect)
+ ret << make_tr("val.to_ary", val.to_ary.inspect)
+ ret << "</TABLE>"
+ }
+ ret
+ end
+
+ def make_tr(arg0, arg1)
+ "<TR><TD>#{arg0}</TD><TD>#{WEBrick::HTMLUtils::escape(arg1)}</TD></TR>"
+ end
+end