Class: DomainExtraction

Inherits:
Object
  • Object
show all
Defined in:
lib/domain_extraction.rb,
lib/domain_extraction/version.rb

Constant Summary collapse

VERSION =
"0.1.1"

Instance Method Summary collapse

Constructor Details

#initialize(dat_source = File.open("#{File.dirname(__FILE__)}/../data/public_suffix_list.dat", "r:UTF-8")) ⇒ DomainExtraction

Returns a new instance of DomainExtraction.



4
5
6
7
# File 'lib/domain_extraction.rb', line 4

def initialize(dat_source = File.open("#{File.dirname(__FILE__)}/../data/public_suffix_list.dat", "r:UTF-8"))
  @tlds = Set.new
  load_tlds(dat_source)
end

Instance Method Details

#extract_domain(hostname) ⇒ Object



9
10
11
12
13
# File 'lib/domain_extraction.rb', line 9

def extract_domain(hostname)
  if tld = extract_tld(hostname)
    hostname[/([^.]+\.#{tld}$)/, 1]
  end
end

#extract_tld(hostname) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/domain_extraction.rb', line 15

def extract_tld(hostname)
  tld  = nil

  possible_domains_for_host(hostname).each do |domain|
    if tlds.include?(domain) || domain_matches_wildcard_tld?(domain)
      tld = domain
    end
  end

  tld
end