Sha256: d85f495ee649053d62563b0e510af3363b94b06d900e608c96d29c0b0696e2ff
Contents?: true
Size: 1 KB
Versions: 74
Compression:
Stored size: 1 KB
Contents
object Bob { def response(statement: String): String = statement match { case ShoutingQuestion() => "Calm down, I know what I'm doing!" case Shouting() => "Whoa, chill out!" case Question() => "Sure." case Silence() => "Fine. Be that way!" case _ => "Whatever." } case object ShoutingQuestion { def unapply(statement: String) = hasLetter(statement) && isOnlyUppercase(statement) && statement.trim.endsWith("?") private def hasLetter(s: String) = s.matches(".*[A-Z].*") private def isOnlyUppercase(s: String) = s == s.toUpperCase } case object Shouting { def unapply(statement: String) = hasLetter(statement) && isOnlyUppercase(statement) private def hasLetter(s: String) = s.matches(".*[A-Z].*") private def isOnlyUppercase(s: String) = s == s.toUpperCase } case object Question { def unapply(statement: String) = statement.trim.endsWith("?") } case object Silence { def unapply(statement: String) = statement.trim.isEmpty } }
Version data entries
74 entries across 74 versions & 1 rubygems