Loads an adapter identified by name using options hash.
# File lib/rack/adapter/loader.rb, line 40 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 :halcyon require 'halcyon' $:.unshift(Halcyon.root/'lib') return Halcyon::Runner.new when :mack ENV["MACK_ENV"] = options[:environment] load(::File.join(options[:chdir], "Rakefile")) require 'mack' return Mack::Utils::Server.build_app when :file return Rack::File.new(options[:chdir]) else raise AdapterNotFound, "Adapter not found: #{name}" end end
Guess which adapter to use based on the directory structure or file content. Returns a symbol representing the name of the adapter to use to load the application under dir/.
# File lib/rack/adapter/loader.rb, line 26 def self.guess(dir) ADAPTERS.each do |adapter, file| return adapter if file && ::File.exist?(::File.join(dir, file)) end raise AdapterNotFound, "No adapter found for #{dir}" end
Generated with the Darkfish Rdoc Generator 2.