2 # *Handlers* connect web servers with Rack.
4 # Rack includes Handlers for Mongrel, WEBrick, FastCGI, CGI, SCGI
7 # Handlers usually are activated by calling <tt>MyHandler.run(myapp)</tt>.
8 # A second optional hash can be passed to include server-specific
14 if klass
= @handlers[server
]
16 klass
.split("::").each
{ |x
| obj
= obj
.const_get(x
) }
19 Rack
::Handler.const_get(server
.capitalize
)
23 def self.register(server
, klass
)
25 @handlers[server
] = klass
28 autoload
:CGI, "rack/handler/cgi"
29 autoload
:FastCGI, "rack/handler/fastcgi"
30 autoload
:Mongrel, "rack/handler/mongrel"
31 autoload
:EventedMongrel, "rack/handler/evented_mongrel"
32 autoload
:SwiftipliedMongrel, "rack/handler/swiftiplied_mongrel"
33 autoload
:WEBrick, "rack/handler/webrick"
34 autoload
:LSWS, "rack/handler/lsws"
35 autoload
:SCGI, "rack/handler/scgi"
36 autoload
:Thin, "rack/handler/thin"
38 register
'cgi', 'Rack::Handler::CGI'
39 register
'fastcgi', 'Rack::Handler::FastCGI'
40 register
'mongrel', 'Rack::Handler::Mongrel'
41 register
'emongrel', 'Rack::Handler::EventedMongrel'
42 register
'smongrel', 'Rack::Handler::SwiftipliedMongrel'
43 register
'webrick', 'Rack::Handler::WEBrick'
44 register
'lsws', 'Rack::Handler::LSWS'
45 register
'scgi', 'Rack::Handler::SCGI'
46 register
'thin', 'Rack::Handler::Thin'