Sha256: cfa06887c45a658b9f39d418d9016a35927c1f124a91f2be9bcda9d15a30b67e
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
module Sinatra module UrlForHelper # Construct a link to +url_fragment+, which should be given relative to # the base of this Sinatra app. The mode should be either # <code>:path_only</code>, which will generate an absolute path within # the current domain (the default), or <code>:full</code>, which will # include the site name and port number. (The latter is typically # necessary for links in RSS feeds.) Example usage: # # url_for "/" # Returns "/myapp/" # url_for "/foo" # Returns "/myapp/foo" # url_for "/foo", :full # Returns "http://example.com/myapp/foo" #-- # See README.rdoc for a list of some of the people who helped me clean # up earlier versions of this code. def url_for url_fragment, mode=:path_only case mode when :path_only base = request.script_name when :full scheme = request.scheme || 'http' if (scheme == 'http' && request.port == 80 || scheme == 'https' && request.port == 443) port = "" else port = ":#{request.port}" end request_host = HOSTNAME ? HOSTNAME : request.host base = "#{scheme}://#{request_host}#{port}#{request.script_name}" else raise TypeError, "Unknown url_for mode #{mode}" end # Don't add the base fragment if url_for gets called more than once # per url or the url_fragment passed in is an absolute url if url_fragment.match(/^#{base}/) or url_fragment.match(/^http/) url_fragment else "#{base}#{url_fragment}" end end def root_url url_for '/' end end helpers UrlForHelper end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bbrowning-deltacloud-core-0.0.3.1 | lib/sinatra/url_for.rb |