diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index 4e2ec108c6..f0dfbd56a3 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -1488,7 +1488,7 @@ def quit! def run!(options = {}, &block) return if running? set options - handler = detect_rack_handler + handler = Rack::Handler.pick(server) handler_name = handler.name.gsub(/.*::/, '') server_settings = settings.respond_to?(:server_settings) ? settings.server_settings : {} server_settings.merge!(:Port => port, :Host => bind) @@ -1742,17 +1742,6 @@ def setup_sessions(builder) builder.use session_store, options end - def detect_rack_handler - servers = Array(server) - servers.each do |server_name| - begin - return Rack::Handler.get(server_name.to_s) - rescue LoadError, NameError - end - end - fail "Server handler (#{servers.join(',')}) not found." - end - def inherited(subclass) subclass.reset! subclass.set :app_file, caller_files.first unless subclass.app_file?