class GeneValidatorApp::Routes

The Sinatra Routes

Public Instance Methods

base_url() click to toggle source
# File lib/genevalidatorapp/routes.rb, line 76
def base_url
  @base_url ||= "#{GeneValidatorApp.ssl? ? 'https' : 'http'}://#{host}"
end
host() click to toggle source

Remove port number.

# File lib/genevalidatorapp/routes.rb, line 72
def host
  host_with_port.to_s.sub(/:\d+\z/, '')
end
host_with_port() click to toggle source
# File lib/genevalidatorapp/routes.rb, line 61
def host_with_port
  forwarded = request.env['HTTP_X_FORWARDED_HOST']
  if forwarded
    forwarded.split(/,\s?/).last
  else
    request.env['HTTP_HOST'] || "#{request.env['SERVER_NAME'] ||
      request.env['SERVER_ADDR']}:#{request.env['SERVER_PORT']}"
  end
end
uri(addr = nil, absolute = true, add_script_name = true) click to toggle source

Overide default URI helper method - to hardcode a https:// In our setup, we are running passenger on http:// (not secure) and then reverse proxying that onto a 443 port (i.e. https://) Generates the absolute URI for a given path in the app. Takes Rack routers and reverse proxies into account.

# File lib/genevalidatorapp/routes.rb, line 45
def uri(addr = nil, absolute = true, add_script_name = true)
  return addr if addr =~ /\A[a-z][a-z0-9\+\.\-]*:/i
  uri = [host = '']
  if absolute
    host << (GeneValidatorApp.ssl? ? 'https://' : 'http://')
    host << if request.forwarded? || request.port != (request.secure? ? 443 : 80)
              request.host_with_port
            else
              request.host
            end
  end
  uri << request.script_name.to_s if add_script_name
  uri << (addr || request.path_info).to_s
  File.join uri
end