diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/scala/xyz/driver/core/domain.scala | 12 |
1 files changed, 12 insertions, 0 deletions
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) |