Class: EmailInquire::Inquirer

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

Constant Summary collapse

VALIDATORS =
i[
  validate_common_domains
  validate_one_time_providers
  validate_known_invalid_domains
  validate_common_domain_mistakes
  validate_cc_tld
  validate_common_tld_mistakes
  validate_domains_with_unique_tld
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(email) ⇒ Inquirer

Returns a new instance of Inquirer.



23
24
25
26
27
# File 'lib/email_inquire/inquirer.rb', line 23

def initialize(email)
  @email = email.downcase

  parse_email
end

Instance Attribute Details

#domainObject (readonly)

Returns the value of attribute domain.



29
30
31
# File 'lib/email_inquire/inquirer.rb', line 29

def domain
  @domain
end

#emailObject (readonly)

Returns the value of attribute email.



29
30
31
# File 'lib/email_inquire/inquirer.rb', line 29

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



29
30
31
# File 'lib/email_inquire/inquirer.rb', line 29

def name
  @name
end

Instance Method Details

#validateObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/email_inquire/inquirer.rb', line 41

def validate
  email_validator = EmailValidator.new(email)
  unless email_validator.valid?
    response.invalid!
    return response
  end

  VALIDATORS.each do |validator|
    send(validator)
    break if response.valid? || response.invalid?
  end

  # default
  response.valid! unless response.status?

  response
end