better consistency around email case sensitivity

This commit is contained in:
Régis Hanol
2013-04-15 02:20:33 +02:00
parent c6ab9fec9d
commit b24c1a1ad9
10 changed files with 62 additions and 35 deletions

View File

@ -1,8 +1,8 @@
require 'mail'
module Email
def self.is_valid?(email)
parser = Mail::RFC2822Parser.new
parser.root = :addr_spec
result = parser.parse(email)
@ -12,4 +12,9 @@ module Email
result && result.respond_to?(:domain) && result.domain.dot_atom_text.elements.size > 1
end
def self.downcase(email)
return email unless Email.is_valid?(email)
email.gsub(/^(.+@{1})([^@]+)$/) { $1 + $2.downcase }
end
end