def self.run
require 'rack'
if File.exists?(Merb.dir_for(:config) / "rack.rb")
Merb::Config[:rackup] ||= Merb.dir_for(:config) / "rack.rb"
end
if Merb::Config[:rackup]
rackup_code = File.read(Merb::Config[:rackup])
Merb::Config[:app] = eval("::Rack::Builder.new {( #{rackup_code}\n )}.to_app", TOPLEVEL_BINDING, Merb::Config[:rackup])
else
Merb::Config[:app] = ::Rack::Builder.new {
use Merb::Rack::Head
use Merb::Rack::ContentLength
if prefix = ::Merb::Config[:path_prefix]
use Merb::Rack::PathPrefix, prefix
end
use Merb::Rack::Static, Merb.dir_for(:public)
run Merb::Rack::Application.new
}.to_app
end
nil
end