From 646eeb4fbc4e285d3f9e7a1cd0c44b62234ef7b3 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Thu, 30 Mar 2017 21:05:28 -0700 Subject: use case insensitive string comparison for emails --- src/main/scala/xyz/driver/core/domain.scala | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/main/scala/xyz/driver/core/domain.scala b/src/main/scala/xyz/driver/core/domain.scala index f2629ee..d16606b 100644 --- a/src/main/scala/xyz/driver/core/domain.scala +++ b/src/main/scala/xyz/driver/core/domain.scala @@ -1,12 +1,24 @@ package xyz.driver.core +import scalaz.Equal +import scalaz.syntax.equal._ +import scalaz.std.string._ + object domain { final case class Email(username: String, domain: String) { + override def equals(other: Any) = other match { + case Email(otherUser, otherDomain) => + username.toLowerCase === otherUser.toLowerCase && domain.toLowerCase === otherDomain.toLowerCase + case _ => false + } + override def toString = username + "@" + domain } object Email { + implicit val emailEqual: Equal[Int] = Equal.equalA[Int] + def parse(emailString: String): Option[Email] = { Some(emailString.split("@")) collect { case Array(username, domain) => Email(username, domain) -- cgit v1.2.3