Class: Philiprehberger::EmailValidator::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/philiprehberger/email_validator/configuration.rb

Overview

Mutable configuration for the email validator.

Allows customizing the disposable domain list at runtime.

Examples:

EmailValidator.configure do |config|
  config.add_disposable_domains(["example.com"])
  config.remove_disposable_domains(["mailinator.com"])
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



21
22
23
24
# File 'lib/philiprehberger/email_validator/configuration.rb', line 21

def initialize
  @added_disposable_domains = Set.new
  @removed_disposable_domains = Set.new
end

Instance Attribute Details

#added_disposable_domainsSet<String> (readonly)

Returns custom domains added to the disposable list.

Returns:

  • (Set<String>)

    custom domains added to the disposable list



16
17
18
# File 'lib/philiprehberger/email_validator/configuration.rb', line 16

def added_disposable_domains
  @added_disposable_domains
end

#removed_disposable_domainsSet<String> (readonly)

Returns domains removed from the built-in disposable list.

Returns:

  • (Set<String>)

    domains removed from the built-in disposable list



19
20
21
# File 'lib/philiprehberger/email_validator/configuration.rb', line 19

def removed_disposable_domains
  @removed_disposable_domains
end

Instance Method Details

#add_disposable_domains(domains) ⇒ void

This method returns an undefined value.

Add domains to the disposable list.

Parameters:

  • domains (Array<String>)

    domains to add



30
31
32
# File 'lib/philiprehberger/email_validator/configuration.rb', line 30

def add_disposable_domains(domains)
  domains.each { |d| @added_disposable_domains.add(d.downcase) }
end

#effective_disposable_domainsSet<String>

Return the effective set of disposable domains.

Returns:

  • (Set<String>)


45
46
47
# File 'lib/philiprehberger/email_validator/configuration.rb', line 45

def effective_disposable_domains
  (Disposable::DOMAINS | @added_disposable_domains) - @removed_disposable_domains
end

#remove_disposable_domains(domains) ⇒ void

This method returns an undefined value.

Remove domains from the disposable list.

Parameters:

  • domains (Array<String>)

    domains to remove



38
39
40
# File 'lib/philiprehberger/email_validator/configuration.rb', line 38

def remove_disposable_domains(domains)
  domains.each { |d| @removed_disposable_domains.add(d.downcase) }
end