Class: EmailRepair::Mechanic

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

Defined Under Namespace

Classes: CommonDomainAtAdder, CommonDomainPeriodAdder, CommonDomainRepair, CommonDomainSuffixRepair, CommonDomainSwapRepair, CommonMistakeRepair, EmailRegexRepair

Instance Method Summary collapse

Instance Method Details

#repair(email) ⇒ Object



36
37
38
39
40
# 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) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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

#repairsObject



3
4
5
6
7
8
9
10
11
12
# File 'lib/email_repair/mechanic.rb', line 3

def repairs
  [
    CommonMistakeRepair,
    CommonDomainSuffixRepair,
    CommonDomainPeriodAdder,
    CommonDomainAtAdder,
    CommonDomainSwapRepair,
    EmailRegexRepair,
  ]
end