Advertisement
Guest User

Untitled

a guest
May 22nd, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. # forest => orestfay
  2. # apple => appleway
  3. # brunch => unchbray
  4.  
  5. class PigLatinTranslator
  6. VOWELS = /[aeiou]/i
  7. NONVOWELS = /[^aeiou]+/i
  8. PUNC = /\w+|\W+/
  9.  
  10. def translate word
  11. upcase = word[0] == word[0].upcase
  12.  
  13. if VOWELS === word[0]
  14. word + "way"
  15. else
  16. group = NONVOWELS.match(word)[0]
  17. translated_word = word[group.size..-1] + group + "ay"
  18. upcase ? translated_word.capitalize : translated_word
  19. end
  20. end
  21.  
  22. def translate_sentence sentence
  23. words = sentence.scan(PUNC)
  24. words.map { |w| word?(w) ? translate(w) : w }.join
  25. end
  26.  
  27. def word? word
  28. /\w/ === word[0]
  29. end
  30. end
  31.  
  32. puts PigLatinTranslator.new.translate("forest")
  33. puts PigLatinTranslator.new.translate("apple")
  34. puts PigLatinTranslator.new.translate("brunch")
  35. puts PigLatinTranslator.new.translate("ate")
  36. puts PigLatinTranslator.new.translate_sentence("Marley eats an apple")
  37. puts PigLatinTranslator.new.translate_sentence("Marley, eat an apple!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement