1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
puma--puma/examples/simpletest.rb
zedshaw e5c2f9404a As the CGI and Handlers get bigger we'll need to separate their code out. This change does that.
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@53 19e92222-5c0b-0410-8929-a290d50e31e9
2006-02-21 00:55:39 +00:00

36 lines
1 KiB
Ruby

require 'mongrel'
require 'yaml'
require 'zlib'
class SimpleHandler < Mongrel::HttpHandler
def process(request, response)
response.start do |head,out|
head["Content-Type"] = "text/html"
results = "<html><body>Your request:<br /><pre>#{request.params.to_yaml}</pre><a href=\"/files\">View the files.</a></body></html>"
if request.params["HTTP_ACCEPT_ENCODING"] == "gzip,deflate"
head["Content-Encoding"] = "deflate"
# send it back deflated
out << Zlib::Deflate.deflate(results)
else
# no gzip supported, send it back normal
out << results
end
end
end
end
if ARGV.length != 3
STDERR.puts "usage: simpletest.rb <host> <port> <docroot>"
exit(1)
end
h = Mongrel::HttpServer.new(ARGV[0], ARGV[1].to_i)
h.register("/", SimpleHandler.new)
h.register("/files", Mongrel::DirHandler.new(ARGV[2]))
h.run
trap("INT") { h.stop }
puts "Mongrel running on #{ARGV[0]}:#{ARGV[1]} with docroot #{ARGV[2]}"
h.acceptor.join