module PigLatinTranslator

Constants

VERSION

Public Class Methods

translate(original) click to toggle source
# File lib/pig_latin_translator.rb, line 4
def self.translate(original)
  original.split.map.each { |word| translate_word(word) }.join(' ')
end

Private Class Methods

translate_word(original) click to toggle source
# File lib/pig_latin_translator.rb, line 10
def self.translate_word(original)
  return original if original.empty?

  is_first_letter_capital = original[0] == original[0].upcase
  first_vowel_index = original.index(/[aeiou]/i)

  if first_vowel_index == 0 
    translated = original[1..-1] + original[0].downcase + 'way'
  elsif first_vowel_index.nil?
    translated = original[1..-1] + original[0].downcase + 'ay'
  else
    translated = original[first_vowel_index..-1] + original[0...first_vowel_index].downcase + 'ay'
  end

  is_first_letter_capital ? translated.capitalize : translated
end