Register now and start sharing your code snippets.
-->

Simple Mongrel HTTP server and custom Mongrel handler example

Ruby posted about 1 year ago by christian

   1  # http://mongrel.rubyforge.org/rdoc/index.html
   2  # gem install -y mongrel
   3  require 'rubygems'
   4  require 'mongrel'
   5  
   6  # Usage: ruby mongrel_http_server.rb <host> <port> <docroot>
   7  host    = ARGV[0] || "127.0.0.1"
   8  port    = ARGV[1] || 80
   9  docroot = ARGV[2] || "html/"
  10  
  11  # Simple Mongrel handler that prints the current date and time
  12  class HandlerExample < Mongrel::HttpHandler
  13     def process(request, response)
  14        response.start(200) do |head, out|
  15           head["Content-Type"] = "text/html"
  16           out.write Time.now
  17        end
  18     end
  19  end
  20  
  21  # Configure Mongrel and handlers
  22  config = Mongrel::Configurator.new :host => host, :port => port do
  23    listener do
  24      uri "/",              :handler => Mongrel::DirHandler.new(docroot)
  25      uri "/handler_example", :handler => HandlerExample.new, :in_front => true
  26    end
  27  
  28    # CTRL+C to stop server
  29    trap("INT") { stop }
  30    run
  31  end
  32  
  33  # Start Mongrel
  34  puts "Mongrel listening on '#{host}:#{port}', serving documents from '#{docroot}'."
  35  config.join
  36  

Tagged mongrel, http, server, handler