sinatra-url-for

sinatra-url-for can be used by a Sinatra application to construct absolute paths and full URLs.

To install it, run:

sudo gem install emk-sinatra-url-for -s http://gems.github.com

To include it in a Sinatra application, write:

require 'rubygems'
gem 'emk-sinatra-url-for'
require 'sinatra/url_for'

Once this is done, you should be able to call url_for from within a request. Assuming that your application is running on example.com, and that it has been mapped to /myapp, you should get:

url_for "/"            # Returns "/myapp/"
url_for "/foo"         # Returns "/myapp/foo"
url_for "/foo", :full  # Returns "http://example.com/myapp/foo"

If you’re subclassing Sinatra::Base, then you need to call helpers manually:

class MyApp < Sinatra::Base
  helpers Sinatra::UrlForHelper
  # ...
end

Thanks to “cypher23” on #mephisto and the folks on #rack for pointing me in the right direction. If this gem fails to work correctly on your web system, please feel free to submit patches and/or bug reports!

Copyright 2009 Eric Kidd. See LICENSE for details.