Class: EmailAssessor::DomainTokenSet

Inherits:
Object
  • Object
show all
Defined in:
lib/email_assessor/domain_token_set.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse(domain) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/email_assessor/domain_token_set.rb', line 6

def parse(domain)
  parts = domain.downcase.split(".")
  indexed_tokens = {
    # {first_char} => { {segment} => nil }
  }

  parts.length.times do
    segment = parts.join(".").freeze

    (indexed_tokens[segment.chr] ||= Hash.new)[segment] = nil

    parts.shift
  end

  indexed_tokens.each_value(&:freeze)
  indexed_tokens.freeze

  new(indexed_tokens)
end

Instance Method Details

#include?(domain) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
# File 'lib/email_assessor/domain_token_set.rb', line 27

def include?(domain)
  tokens_of_char = @indexed_tokens[domain.chr]

  return false if tokens_of_char.nil?

  tokens_of_char.key?(domain)
end

#indexesObject



35
36
37
# File 'lib/email_assessor/domain_token_set.rb', line 35

def indexes
  @indexes ||= @indexed_tokens.keys
end