Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # forest => orestfay
- # apple => appleway
- # brunch => unchbray
- class PigLatinTranslator
- VOWELS = /[aeiou]/i
- NONVOWELS = /[^aeiou]+/i
- PUNC = /\w+|\W+/
- def translate word
- upcase = word[0] == word[0].upcase
- if VOWELS === word[0]
- word + "way"
- else
- group = NONVOWELS.match(word)[0]
- translated_word = word[group.size..-1] + group + "ay"
- upcase ? translated_word.capitalize : translated_word
- end
- end
- def translate_sentence sentence
- words = sentence.scan(PUNC)
- words.map { |w| word?(w) ? translate(w) : w }.join
- end
- def word? word
- /\w/ === word[0]
- end
- end
- puts PigLatinTranslator.new.translate("forest")
- puts PigLatinTranslator.new.translate("apple")
- puts PigLatinTranslator.new.translate("brunch")
- puts PigLatinTranslator.new.translate("ate")
- puts PigLatinTranslator.new.translate_sentence("Marley eats an apple")
- puts PigLatinTranslator.new.translate_sentence("Marley, eat an apple!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement