module Rack::Adapter
Public Class Methods
for(name, options={})
click to toggle source
Loads an adapter identified by name
using options
hash.
# 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
guess(dir)
click to toggle source
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 23 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