class Rack::Request

Public Instance Methods

subdomains(tld_len=1) click to toggle source
# File lib/magis/base.rb, line 3
def subdomains(tld_len=1) # we set tld_len to 1, use 2 for co.uk or similar
  # cache the result so we only compute it once.
  @env['rack.env.subdomains'] ||= lambda {
    # check if the current host is an IP address, if so return an empty array
    return [] if (host.nil? ||
                  /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.match(host))
    host.split('.')[0...(1 - tld_len - 2)] # pull everything except the TLD
  }.call
end