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