Class: FakeEmailService

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

Instance Method Summary collapse

Constructor Details

#initializeFakeEmailService

Returns a new instance of FakeEmailService.



5
6
7
8
# File 'lib/fake_email_service.rb', line 5

def initialize
  fake_domains_file = File.expand_path('../../config/fake_domains.list', __FILE__)
  @fake_domains = File.readlines(fake_domains_file).map {|fd| fd.strip.downcase }
end

Instance Method Details

#is_fake_email?(email) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/fake_email_service.rb', line 10

def is_fake_email?(email)
  return false if email.blank?

  email_address = Mail::Address.new(email)

  domain = email_address.domain.strip.downcase
  domain_parts = domain.split('.')

  second_level_domain = Array(domain_parts[-2..-1]).join('.')
  third_level_domain = Array(domain_parts[-3..-1]).join('.')

  domains = [domain, second_level_domain, third_level_domain].compact

  @fake_domains.any? {|fake_domain| domains.include?(fake_domain) }
end