Sha256: 21c8540d4ee35a2fc16cae27349089aec443fe9814054874fb1bf4e4d7c450da

Contents?: true

Size: 940 Bytes

Versions: 14

Compression:

Stored size: 940 Bytes

Contents

module SubdomainRoutes
  class TooManySubdomains < StandardError
  end

  module SplitHost
    private
    
    def split_host(host)
      raise HostNotSupplied, "No host supplied!" if host.blank?
      raise HostNotSupplied, "Can't set subdomain for an IP address!" if host =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
      parts = host.split('.')
      if Config.domain_length
        domain_parts = [ ]
        Config.domain_length.times { domain_parts.unshift parts.pop }
        if parts.size > 1
          raise TooManySubdomains, "Multiple subdomains found: #{parts.join('.')}. (Have you set SubdomainRoutes::Config.domain_length correctly?)"
        end
        [ parts.pop.to_s, domain_parts.join('.') ]
      else
        [ parts.shift.to_s, parts.join('.') ]
      end
    end
    
    def domain_for_host(host)
      split_host(host).last
    end
    
    def subdomain_for_host(host)
      split_host(host).first
    end
  end
end

Version data entries

14 entries across 14 versions & 6 rubygems

Version Path
mataki-subdomain_routes-0.3.1 lib/subdomain_routes/split_host.rb
mholling-subdomain_routes-0.2.0 lib/subdomain_routes/split_host.rb
mholling-subdomain_routes-0.2.1 lib/subdomain_routes/split_host.rb
mholling-subdomain_routes-0.2.2 lib/subdomain_routes/split_host.rb
mholling-subdomain_routes-0.2.3 lib/subdomain_routes/split_host.rb
mholling-subdomain_routes-0.3.0 lib/subdomain_routes/split_host.rb
mholling-subdomain_routes-0.3.1 lib/subdomain_routes/split_host.rb
affinitylabs-subdomain_routes-0.3.1 lib/subdomain_routes/split_host.rb
ghazel-subdomain_routes-0.3.1.2 lib/subdomain_routes/split_host.rb
ghazel-subdomain_routes-0.3.1.1 lib/subdomain_routes/split_host.rb
mataki-subdomain_routes-0.3.3 lib/subdomain_routes/split_host.rb
mataki-subdomain_routes-0.3.2 lib/subdomain_routes/split_host.rb
projectdx-subdomain_routes-0.3.2 lib/subdomain_routes/split_host.rb
subdomain_routes-0.3.1 lib/subdomain_routes/split_host.rb