class EmailRepair::Mechanic

Public Instance Methods

repair(email) click to toggle source
# File lib/email_repair/mechanic.rb, line 36
def repair(email)
  return unless email

  repairs.reduce(email) { |memo, repair| repair.repair(memo) }
end
repair_all(emails) click to toggle source
# File lib/email_repair/mechanic.rb, line 14
def repair_all(emails)
  emails = emails.reject(&:nil?).map(&:strip).reject { |email| email == '' }

  sanitized_emails = []
  invalid_emails = []

  emails.each do |email|
    repaired_email = repair(email)

    if repaired_email
      sanitized_emails << repaired_email
    else
      invalid_emails << email
    end
  end

  OpenStruct.new(
    sanitized_emails: sanitized_emails.uniq,
    invalid_emails: invalid_emails.uniq,
  )
end
repairs() click to toggle source
# File lib/email_repair/mechanic.rb, line 3
def repairs
  [
    CommonMistakeRepair,
    CommonDomainSuffixRepair,
    CommonDomainPeriodAdder,
    CommonDomainAtAdder,
    CommonDomainSwapRepair,
    EmailRegexRepair,
  ]
end