"Плохое значение для диапазона" - не удается решить
Так что смысл этого кода в том, чтобы перевести латинский язык свиньи (и, видимо, "u" не считается гласным)... это было для упражнения. Я попытался изменить значения циклов for для загрузки, а затем попробовал другие операторы if / else. Я rspec'ing функции с важной частью
describe "#translate" do
it "translates many words" do
s = translate("the quick brown fox")
expect(s).to eq("ethay ickquay ownbray oxfay")
end
end
и мне жаль, что я почти забыл упомянуть, как ошибка появляется. Если верхний абзац не имеет смысла... мой плохой, забыл упомянуть код, который проблематичен, прошёл
'#' Метод для ввода с пробелами
и сообщение об ошибке, которое появляется для этого rspec
2) #translate translates many words
Failure/Error: s = translate("the quick brown fox")
ArgumentError:
bad value for range
# ./pig_latin.rb:25:in `translate'
# ./pig_latin_spec.rb:64:in `block (2 levels) in <top (required)>'
Я новичок в этом и не читал много вопросов (в основном просто смотрю на решения), так что извините, моя точка зрения встречается довольно размыто
#write your code here
def translate input
vowels = ["a", "e", "i", "o"]
output = input.split("")
if (output.include?(" ") == false)
i = 0
#Method for inputs with no spaces
while (i == 0)
#First Letter is not a vowel
if ((vowels.include?(output[i])) == false)
output.insert((output.length - 1), output.delete_at(i))
else
#Is a vowel
output = output.join + "ay"
i += 1
break
end
end
#Method for inputs with spaces
else
output = output.join.split
for i in i..(output.length - 1)
output[i] = output[i].split("")
for x in x..10
if ((vowels.include?(output[i][x])) == false)
output[i].insert((output[i].length - 1), output[i].delete_at(x))
else
output[i] = output[i].join + "ay"
i += 1
break
end
end
end
output = output.join(" ")
end
return output
end