def spawn_application(options)
if !options["app_root"]
raise ArgumentError, "The 'app_root' option must be given."
end
options = sanitize_spawn_options(options)
case options["app_type"]
when "rails"
if !defined?(ClassicRails::FrameworkSpawner)
require 'phusion_passenger/classic_rails/framework_spawner'
require 'phusion_passenger/classic_rails/application_spawner'
end
return spawn_rails_application(options)
when "rack"
if !defined?(Rack::ApplicationSpawner)
require 'phusion_passenger/rack/application_spawner'
end
return spawn_rack_application(options)
when "wsgi"
if !defined?(WSGI::ApplicationSpawner)
require 'phusion_passenger/wsgi/application_spawner'
end
return WSGI::ApplicationSpawner.spawn_application(options)
else
raise ArgumentError, "Unknown 'app_type' value '#{options["app_type"]}'."
end
end