class Apartment::Elevators::Subdomain
Assumes that database name should match subdomain
Provides a rack based db switching solution based on subdomains
def named_host?(host)
def named_host?(host) !(host.nil? || /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.match(host)) end
def parse_database_name(request)
def parse_database_name(request) database = subdomain(request.host) database.present? && database || nil end
def subdomain(host)
def subdomain(host) subdomains(host).first end
def subdomains(host, tld_length = 1)
def subdomains(host, tld_length = 1) return [] unless named_host?(host) host.split('.')[0..-(tld_length + 2)] end