Skip to content

Instantly share code, notes, and snippets.

@andrewconner
Created February 11, 2013 23:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewconner/4758682 to your computer and use it in GitHub Desktop.
Save andrewconner/4758682 to your computer and use it in GitHub Desktop.
trait Translator {
def translate(input: String): String
}
class FakeTranslator extends Translator {
def translate(input: String): String = input
}
class FrenchTranslatorImpl extends Translator {
val wordReplacements = Map(
"hello" -> "bonjour",
"hi" -> "salut",
"greetings" -> "salutations"
)
def translate(input: String): String = {
input.split("""\s+""").map(word => wordReplacements.get(word.toLowerCase).map(newWord => word match {
case _ if word(0).isUpper => newWord.capitalize
case _ => newWord
}).getOrElse(word)).mkString(" ")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment