Thank you so much for prompt and useful explanation. On Saturday, September 22, 2012 3:42:32 AM UTC-7, Magnus Holm wrote: > > No, but this is what middleware are for: > > class ApplicationChooser > def initialize(apps) > @apps = apps > end > > def call(env) > @apps.each do |proc, app| > return app.call(env) if proc.call(env) > end > end > > run ApplicationChooser.new( > proc { |env| env["SERVER_NAME"] == "example.com" } => App1, > proc { |env| env["QUERY_STRING"] == "admin" } => App2, > proc { |env| true } => Default > ) > > // Magnus Holm > > > On Sat, Sep 22, 2012 at 12:32 PM, Arman > > wrote: > > Thanks for the quick answer. This definitely works. > > > > Our of curiosity, is it possible to see the host and other request > > information in config.ru? > > > > On Sep 22, 2012 3:04 AM, "Magnus Holm" > > wrote: > >> > >> It's already supported, you just need the trailing slash: > >> > >> map 'http://example1.com/' do > >> run MyApp::Example1 > >> end > >> > >> // Magnus Holm > >> > >> > >> On Sat, Sep 22, 2012 at 11:58 AM, armanx > > wrote: > >> > Is it possible to detect the incoming request's domain name (host) in > >> > config.ru? I'm trying to use URLMap to map different domains to > >> > different > >> > apps, all running on the same IP. Theoretically, I'm trying to > achieve > >> > this > >> > effect: > >> > > >> >> map 'http://example1.com' do > >> >> run MyApp::Example1 > >> >> end > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> map 'http://example2.com' do > >> >> run MyApp::Example2 > >> >> end > >> > > >> > > >> > > >> > For example, if it was possible to read rack's SERVER_NAME in > config.ru, > >> > I > >> > would do something like: > >> > > >> >> if SERVER_NAME == 'example1.com' > >> >> map '/' do > >> >> run MyApp::Example1 > >> >> end > >> >> end > >> > > >> > >