Module: Mongrel

Defined in:
lib/mongrel.rb,
lib/mongrel/cgi.rb,
lib/mongrel/command.rb,
lib/mongrel/plugins.rb,
lib/mongrel/handlers.rb,
ext/http11/http11.c

Overview

Mongrel module containing all of the classes (include C extensions) for running a Mongrel web server. It contains a minimalist HTTP server with just enough functionality to service web application requests fast as possible.

Defined Under Namespace

Modules: Command, Const Classes: CGIWrapper, DirHandler, Error404Handler, HeaderOut, HttpHandler, HttpParser, HttpRequest, HttpResponse, HttpServer, PluginBase, PluginManager, StopServer, TimeoutWorker, URIClassifier

Constant Summary collapse

HTTP_STATUS_CODES =

Every standard HTTP code mapped to the appropriate message. These are used so frequently that they are placed directly in Mongrel for easy access rather than Mongrel::Const.

{  
  100  => 'Continue', 
  101  => 'Switching Protocols', 
  200  => 'OK', 
  201  => 'Created', 
  202  => 'Accepted', 
  203  => 'Non-Authoritative Information', 
  204  => 'No Content', 
  205  => 'Reset Content', 
  206  => 'Partial Content', 
  300  => 'Multiple Choices', 
  301  => 'Moved Permanently', 
  302  => 'Moved Temporarily', 
  303  => 'See Other', 
  304  => 'Not Modified', 
  305  => 'Use Proxy', 
  400  => 'Bad Request', 
  401  => 'Unauthorized', 
  402  => 'Payment Required', 
  403  => 'Forbidden', 
  404  => 'Not Found', 
  405  => 'Method Not Allowed', 
  406  => 'Not Acceptable', 
  407  => 'Proxy Authentication Required', 
  408  => 'Request Time-out', 
  409  => 'Conflict', 
  410  => 'Gone', 
  411  => 'Length Required', 
  412  => 'Precondition Failed', 
  413  => 'Request Entity Too Large', 
  414  => 'Request-URI Too Large', 
  415  => 'Unsupported Media Type', 
  500  => 'Internal Server Error', 
  501  => 'Not Implemented', 
  502  => 'Bad Gateway', 
  503  => 'Service Unavailable', 
  504  => 'Gateway Time-out', 
  505  => 'HTTP Version not supported'
}

Class Method Summary collapse

Class Method Details

.Plugin(c) ⇒ Object

This nifty function works with the PluginBase to give you the syntax:

class MyThing < Plugin "/things"
  ...
end

What it does is temporarily sets the PluginBase.category, and then returns PluginBase. Since the next immediate thing Ruby does is use this returned class to create the new class, PluginBase.inherited gets called. PluginBase.inherited then uses the set category, class name, and class to register the plugin in the right way.



147
148
149
150
# File 'lib/mongrel/plugins.rb', line 147

def Mongrel::Plugin(c)
  PluginBase.category = c
  PluginBase
end