Spec-Zone.ru › Ruby on Rails 8.1

module ActionDispatch::Http::URL::DomainExtractor

DomainExtractor предоставляет служебные методы для извлечения информации о домене и поддомене из строк хоста. Этот модуль используется внутри Action Dispatch для анализа имен хостов и отделения домена от поддоменов на основе длины домена верхнего уровня (TLD).

Модуль предполагает стандартную структуру домена, в которой домены состоят из: - Поддоменов (необязательно, могут быть многоуровневыми) - Доменного имени - Домена верхнего уровня (TLD, может быть многоуровневым, например .co.uk)

Например, в «api.staging.example.co.uk»: - Поддомены: [«api», «staging»] - Домен: «example.co.uk» (с tld_length=2) - TLD: «co.uk»

Открытые методы экземпляра

domain_from (host, tld_length) Показать исходный код
# File actionpack/lib/action_dispatch/http/url.rb, line 64
def domain_from(host, tld_length)
  host.split(".").last(1 + tld_length).join(".")
end

Извлекает доменную часть из строки хоста, включая указанное количество компонентов домена верхнего уровня.

Домен включает в себя основное доменное имя плюс компоненты TLD. Параметр tld_length указывает, сколько компонентов справа должны считаться частью TLD.

==== Parameters

[host] Строка хоста, из которой извлекается домен.

[tld_length] Количество компонентов домена, составляющих TLD. Например, используйте 1 для «.com» или 2 для «.co.uk».

==== Примеры

# Стандартный TLD (tld_length = 1) DomainExtractor.domain_from(“www.example.com”, 1) # => “example.com”

# TLD с кодом страны (tld_length = 2) DomainExtractor.domain_from(“www.example.co.uk”, 2) # => “example.co.uk”

# Несколько поддоменов DomainExtractor.domain_from(“api.staging.myapp.herokuapp.com”, 1) # => “herokuapp.com”

# Одиночный компонент (возвращает сам хост) DomainExtractor.domain_from(“localhost”, 1) # => “localhost”

subdomains_from (host, tld_length) Показать исходный код
# File actionpack/lib/action_dispatch/http/url.rb, line 104
def subdomains_from(host, tld_length)
  parts = host.split(".")
  parts[0..-(tld_length + 2)]
end

Извлекает компоненты поддомена из строки хоста в виде Array.

Возвращает все компоненты, предшествующие частям домена и TLD. Параметр tld_length используется для определения того, где начинается домен, так что все, что находится перед ним, считается поддоменом.

==== Parameters

[host] Строка хоста, из которой извлекаются поддомены.

[tld_length] Количество компонентов домена, составляющих TLD. Это влияет на то, где рассчитывается граница домена.

==== Примеры

# Стандартный TLD (tld_length = 1) DomainExtractor.subdomains_from(“www.example.com”, 1) # => [“www”]

# TLD с кодом страны (tld_length = 2) DomainExtractor.subdomains_from(“api.staging.example.co.uk”, 2) # => [“api”, “staging”]

# Без поддоменов DomainExtractor.subdomains_from(“example.com”, 1) # => []

# Одиночный поддомен со сложным TLD DomainExtractor.subdomains_from(“www.mysite.co.uk”, 2) # => [“www”]

# Несколько уровней поддоменов DomainExtractor.subdomains_from(“dev.api.staging.example.com”, 1) # => [“dev”, “api”, “staging”]

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API