pick a server, any server!

This commit is contained in:
Blake Mizerany 2008-04-14 00:25:06 -07:00
parent 39cee5c8da
commit f747bfe403
2 changed files with 25 additions and 3 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@ doc
pkg
*.log
.DS_Store
rack*

View File

@ -120,12 +120,32 @@ module Sinatra
app
end
def server
@server ||= case options.server
when "mongrel"
Rack::Handler::Mongrel
when "webrick"
Rack::Handler::WEBrick
when "cgi"
Rack::Handler::CGI
when "fastcgi"
Rack::Handler::FastCGI
else
if defined?(Rack::Handler::Thin)
Rack::Handler::Thin
else
options.server ||= "mongrel"
eval("Rack::Handler::#{options.server.capitalize}")
end
end
end
def run
begin
puts "== Sinatra has taken the stage on port #{port} for #{env}"
puts "== Sinatra has taken the stage on port #{port} for #{env} with backup by #{server.name}"
require 'pp'
Rack::Handler::Mongrel.run(build_application, :Port => port) do |server|
server.run(build_application, :Port => port) do |server|
trap(:INT) do
server.stop
puts "\n== Sinatra has ended his set (crowd applauds)"
@ -722,7 +742,8 @@ module Sinatra
OptionParser.new do |op|
op.on('-p port') { |port| default_options[:port] = port }
op.on('-e env') { |env| default_options[:env] = env }
op.on('-x') { |env| default_options[:mutex] = true }
op.on('-x') { default_options[:mutex] = true }
op.on('-s server') { |server| default_options[:server] = server }
end.parse!(ARGV.dup.select { |o| o !~ /--name/ })
end