Module: EmailTypo
- Defined in:
- lib/email_typo.rb,
lib/email_typo/aol.rb,
lib/email_typo/gmail.rb,
lib/email_typo/yahoo.rb,
lib/email_typo/icloud.rb,
lib/email_typo/dot_com.rb,
lib/email_typo/dot_net.rb,
lib/email_typo/dot_org.rb,
lib/email_typo/hotmail.rb,
lib/email_typo/version.rb,
lib/email_typo/providers.rb,
lib/email_typo/googlemail.rb,
lib/email_typo/add_missing_m.rb,
lib/email_typo/known_dot_com.rb,
lib/email_typo/remove_mailto.rb,
lib/email_typo/different_tlds.rb,
lib/email_typo/add_missing_period.rb,
lib/email_typo/transposed_periods.rb,
lib/email_typo/remove_invalid_chars.rb,
lib/email_typo/period_around_at_sign.rb
Constant Summary collapse
- Aol =
lambda do |email| email.gsub(/@(ol|ao|ail)\./, "@aol.") end
- Gmail =
lambda do |email| email.gsub(/@g[nm]{0,2}s?[ail]{1,2}[aiklmou]{0,3}\.(?!gov|edu)/, "@gmail.") end
- Yahoo =
lambda do |email| email.gsub(/@(ya|yh|ua|ah)+h*a*o+\./, "@yahoo.") end
- Icloud =
lambda do |email| email.gsub(/@icl{0,2}(?:uo|u|o)d\./, "@icloud.") end
- DotCom =
lambda do |email| email .gsub(/\.co[mn]\.com/, ".com") .gsub(/\.com\.$/, ".com") .gsub(/\.com(?!cast|\.|@).{1,3}$/, ".com") .gsub(/\.co[^op]$/, ".com") .gsub(/\.c*(c|ck|ci|coi|l|m|n|o|op|cp|0|9)*m+o*$/, ".com") .gsub(/\.(c|f|v|x)o+(m|n)$/, ".com") end
- DotNet =
lambda do |email| email.gsub(/\.(nte*|n*et*)$/, ".net") end
- DotOrg =
require the o, to not false-positive .gr e-mails
lambda do |email| email.gsub(/\.og?r?g{0,2}$/, ".org") end
- Hotmail =
lambda do |email| email.gsub(/@h(i|o|p)?y?t?o?a?m?n?t?[aikl]{1,3}l?\./, "@hotmail.") end
- VERSION =
"0.1.2".freeze
- Providers =
lambda do |email| email .gsub(/@co?(m|n)a?cas?t{0,2}\./, "@comcast.") .gsub(/@sbc?gl?ob[al]{0,2}l?\./, "@sbcglobal.") .gsub(/@ver?i?z?on\./, "@verizon.") .gsub(/@icl{0,2}oud\./, "@icloud.") .gsub(/@outl?ook?\./, "@outlook.") end
- Googlemail =
lambda do |email| email .gsub(/@go{0,3}g{0,2}o?le?[mn]?[ail]{1,2}m?[aikl]{0,3}\./, "@googlemail.") end
- AddMissingM =
lambda do |email| email.gsub(/(aol|googlemail|gmail|hotmail|yahoo).co$/, "\\1.com") end
- KnownDotCom =
lambda do |email| email .gsub( /@(aol|googlemail|gmail|hotmail|yahoo|icloud|outlook)\.([a-z]+)$/, "@\\1.com" ) end
- RemoveMailTo =
lambda do |email| email.gsub(/\Amailto:/, "") end
- DifferentTlds =
lambda do |email| email .gsub(/\.(o\.uk|couk|co\.um)$/, ".co.uk") .gsub(/\.(cojp|co\.lp)$/, ".co.jp") end
- AddMissingPeriod =
lambda do |email| email.gsub(/([^\.])(com|org|net)$/, "\\1.\\2") end
- TransposedPeriods =
can’t do “o.gr” => “.org”, as “.gr” is a valid TLD
lambda do |email| email .gsub(/c\.om$/, ".com") .gsub(/n\.et$/, ".net") end
- RemoveInvalidChars =
lambda do |email| email .gsub(/(\s|\#|\'|\"|\\)*/, "") .gsub(/(\,|\.\.)/, ".") .gsub("@@", "@") end
- PeriodAroundAtSign =
lambda do |email| email.gsub(/(\.@|@\.)/, "@") end
Class Attribute Summary collapse
-
.default_processors ⇒ Object
List of default processors that will be applied to fix any email’s typos.
Class Method Summary collapse
Class Attribute Details
.default_processors ⇒ Object
List of default processors that will be applied to fix any email’s typos.
27 28 29 |
# File 'lib/email_typo.rb', line 27 def default_processors @default_processors end |
Class Method Details
.fix(email, processors = default_processors) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/email_typo.rb', line 51 def self.fix(email, processors = default_processors) return unless email processors.reduce(email.downcase) do |processed_email, processor| processor.call(processed_email) end end |