def self.for(name, options={})
ENV['RACK_ENV'] = options[:environment]
case name.to_sym
when :rack
return load(::File.join(options[:chdir], "config.ru"))
when :rails
return Rails.new(options.merge(:root => options[:chdir]))
when :ramaze
require "#{options[:chdir]}/start"
Ramaze.trait[:essentials].delete Ramaze::Adapter
Ramaze.start :force => true
return Ramaze::Adapter::Base
when :merb
require 'merb-core'
Merb::Config.setup(:merb_root => options[:chdir],
:environment => options[:environment])
Merb.environment = Merb::Config[:environment]
Merb.root = Merb::Config[:merb_root]
Merb::BootLoader.run
return Merb::Rack::Application.new
when :file
return Rack::File.new(options[:chdir])
else
raise AdapterNotFound, "Adapter not found: #{name}"
end
end