Module: Rack::Adapter
- Defined in:
- lib/thin.rb,
lib/rack/adapter/rails.rb,
lib/rack/adapter/loader.rb
Defined Under Namespace
Classes: Rails
Class Method Summary collapse
-
.for(name, options = {}) ⇒ Object
Loads an adapter identified by
name
usingoptions
hash. -
.guess(dir) ⇒ Object
Guess which adapter to use based on the directory structure or file content.
Class Method Details
.for(name, options = {}) ⇒ Object
Loads an adapter identified by name
using options
hash.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/rack/adapter/loader.rb', line 32 def self.for(name, ={}) case name.to_sym when :rails return Rails.new(.merge(:root => [:chdir])) when :ramaze require "#{[: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 => [:chdir], :environment => [: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"] = [:environment] load(::File.join([:chdir], "Rakefile")) require 'mack' return Mack::Utils::Server.build_app when :file return Rack::File.new([:chdir]) else raise AdapterNotFound, "Adapter not found: #{name}" end end |
.guess(dir) ⇒ Object
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/
.
24 25 26 27 28 29 |
# File 'lib/rack/adapter/loader.rb', line 24 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 |