# File lib/rack/adapter/loader.rb, line 37
    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