Skip to content

Instantly share code, notes, and snippets.

View dpovey's full-sized avatar

Dean Povey dpovey

  • CitrusAd
  • Brisbane, Australia
  • 21:15 (UTC -12:00)
View GitHub Profile
@dpovey
dpovey / keybase.md
Created March 24, 2020 03:03
Keybase Proof

Keybase proof

I hereby claim:

  • I am dpovey on github.
  • I am dpovey (https://keybase.io/dpovey) on keybase.
  • I have a public key ASCorcRyppPksXENHtViPrxEBD6pGX-aYtpSe0yQSotcVgo

To claim this, I am signing this object:

for {
email <- EmailAddress(address)
msg <- Try { horribleJavaLibraryMethodThatThrowsExceptions }.toEither
} yield {
sendEmail(email, msg)
}
val t = Try { throw new RuntimeException("Boom!") }
class EmailAddress(val value: String) extends AnyVal
object EmailAddress {
def apply(value: String): Either[Exception, EmailAddress] = {
if (validEmailAddress(value)) {
Right(new EmailAddress(value))
} else {
Left(new IllegalArgumentException(s"Invalid email address: $value"))
}
}
}