Module: Addressabler

Defined in:
lib/addressabler.rb,
lib/addressabler/uri.rb,
lib/addressabler/query.rb,
lib/addressabler/uri_deprecation.rb

Defined Under Namespace

Modules: URI, URIDeprecation Classes: Query

Class Method Summary collapse

Class Method Details

.all_tldsObject



6
7
8
9
10
11
12
# File 'lib/addressabler.rb', line 6

def self.all_tlds
  @all_tlds ||= {}.tap do |tlds|
    with_tld_file do |line|
      add_line_to_tlds(line, tlds)
    end
  end
end

.custom_tldsObject



14
15
16
# File 'lib/addressabler.rb', line 14

def self.custom_tlds
  @custom_tlds ||= {}
end

.custom_tlds=(new_custom_tlds) ⇒ Object



18
19
20
# File 'lib/addressabler.rb', line 18

def self.custom_tlds=(new_custom_tlds)
  @custom_tlds = new_custom_tlds
end

.parse_tld(host) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/addressabler.rb', line 22

def self.parse_tld(host)
  host = host.to_s.split('.')
  tlds = []
  tlds = look_for_tld_in(private_tlds, host.dup) if use_private_tlds?
  tlds = look_for_tld_in(public_tlds.merge(custom_tlds), host.dup) if tlds.empty?
  tlds.join('.')
end

.private_tldsObject



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/addressabler.rb', line 30

def self.private_tlds
  @private_tlds ||= {}.tap do |tlds|
    in_private_tlds = false
    with_tld_file do |line|
      if in_private_tlds
        add_line_to_tlds(line, tlds)
      elsif line =~ /BEGIN PRIVATE/
        in_private_tlds = true
      end
    end
  end
end

.public_tldsObject



43
44
45
46
47
48
49
50
# File 'lib/addressabler.rb', line 43

def self.public_tlds
  @public_tlds ||= {}.tap do |tlds|
    with_tld_file do |line|
      break if line =~ /END ICANN/
      add_line_to_tlds(line, tlds)
    end
  end
end

.use_private_tlds=(new_use_private_tlds) ⇒ Object



52
53
54
# File 'lib/addressabler.rb', line 52

def self.use_private_tlds=(new_use_private_tlds)
  @use_private_tlds = new_use_private_tlds
end

.use_private_tlds?Boolean

Returns:

  • (Boolean)


56
57
58
59
# File 'lib/addressabler.rb', line 56

def self.use_private_tlds?
  return @use_private_tlds if defined? @use_private_tlds
  @use_private_tlds = false
end