| Class | Merb::BootLoader::RackUpApplication |
| In: |
merb-core/lib/merb-core/bootloader.rb
|
| Parent: | Merb::BootLoader |
Setup the Merb Rack App or read a rackup file located at Merb::Config[:rackup] with the same syntax as the rackup tool that comes with rack. Automatically evals the file in the context of a Rack::Builder.new { } block. Allows for mounting additional apps or middleware.
nil
:api: plugin
# File merb-core/lib/merb-core/bootloader.rb, line 1287
1287: def self.run
1288: require 'rack'
1289: if File.exists?(Merb.dir_for(:config) / "rack.rb")
1290: Merb::Config[:rackup] ||= Merb.dir_for(:config) / "rack.rb"
1291: end
1292:
1293: if Merb::Config[:rackup]
1294: rackup_code = File.read(Merb::Config[:rackup])
1295: Merb::Config[:app] = eval("::Rack::Builder.new {( #{rackup_code}\n )}.to_app", TOPLEVEL_BINDING, Merb::Config[:rackup])
1296: else
1297: Merb::Config[:app] = ::Rack::Builder.new {
1298: if prefix = ::Merb::Config[:path_prefix]
1299: use Merb::Rack::PathPrefix, prefix
1300: end
1301: use Merb::Rack::Static, Merb.dir_for(:public)
1302: run Merb::Rack::Application.new
1303: }.to_app
1304: end
1305:
1306: nil
1307: end