Sha256: 582277373ae1d1b949d898ead1c48b06aec16aae3738dba01a128c6b76c15646

Contents?: true

Size: 1.41 KB

Versions: 12

Compression:

Stored size: 1.41 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
        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
      "#{base}#{url_fragment}"
    end

    def root_url
      url_for '/'
    end
  end



  helpers UrlForHelper
end

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
wakame-vdc-agents-11.12.0 lib/sinatra/url_for.rb
wakame-vdc-dcmgr-11.12.0 lib/sinatra/url_for.rb
wakame-vdc-agents-11.06.0 lib/sinatra/url_for.rb
wakame-vdc-dcmgr-11.06.0 lib/sinatra/url_for.rb
wakame-vdc-dcmgr-10.12.0 lib/sinatra/url_for.rb
wakame-vdc-agents-10.12.0 lib/sinatra/url_for.rb
wakame-vdc-dcmgr-10.11.0 lib/sinatra/url_for.rb
wakame-vdc-agents-10.11.0 lib/sinatra/url_for.rb
deltacloud-core-0.0.4 lib/sinatra/url_for.rb
deltacloud-core-0.0.3 lib/sinatra/url_for.rb
deltacloud-core-0.0.2 lib/sinatra/url_for.rb
deltacloud-core-0.0.1 lib/sinatra/url_for.rb