class Truemail::RSpec::ValidatorHelper::ValidatorFactory

Attributes

configuration[R]
email[R]
mail_servers[R]
success[R]
validation_type[RW]

Public Class Methods

call(validation_type, success, email, mail_servers, configuration) click to toggle source
# File lib/truemail/rspec/validator_helper.rb, line 103
def self.call(validation_type, success, email, mail_servers, configuration)
  new(validation_type, success, email, mail_servers, configuration).build
end
new(validation_type, success, email, mail_servers, configuration) click to toggle source
# File lib/truemail/rspec/validator_helper.rb, line 107
def initialize(validation_type, success, email, mail_servers, configuration)
  @validation_type = validation_type
  @success = success
  @email = email
  @mail_servers = mail_servers
  @configuration = configuration
end

Public Instance Methods

build() click to toggle source
# File lib/truemail/rspec/validator_helper.rb, line 115
def build
  process_validator_params
  Truemail::Validator.new(email, with: validation_type, configuration: configuration).run
end

Private Instance Methods

process_validator_params() click to toggle source
# File lib/truemail/rspec/validator_helper.rb, line 125
def process_validator_params
  case validation_type
  when :whitelist
    self.validation_type = nil
    method = success ? :whitelisted_domains : :blacklisted_domains
    domain = email[Truemail::RegexConstant::REGEX_EMAIL_PATTERN, 3]
    configuration.tap { |config| config.public_send(method) << domain }
  when :mx_blacklist
    configuration.blacklisted_mx_ip_addresses.push(*mail_servers) unless success
  end
end