Multiple Sinatra apps using rack-mount

Michael Irwin picture Michael Irwin · Jun 27, 2011 · Viewed 11.1k times · Source

I have a question regarding using rack-mount with Sinatra. I've got two classic-style Sinatra apps. Let's call one App defined in app.rb and the other API defined in api.rb.

I would like it so that api.rb handles all routes beginning with '/api' and app.rb handles all other requests including the root ('/').

How would I set this up with rack-mount? Or is there a better solution than that?

Answer

dunedain289 picture dunedain289 · Jun 27, 2011

I think you'll prefer Rack::URLMap - it will probably look something like this:

run Rack::URLMap.new("/" => App.new, 
                     "/api" => Api.new)

That should go in your config.ru file.