Я работаю над некоторыми домашними заданиями для курса рубина, и у меня возникли проблемы с моим ответом. В основном мне нужно создать программу, которая удовлетворяет этим условиям:
describe "reverser" do
it "reverses the string returned by the default block" do
result = reverser do
"hello"
end
result.should == "olleh"
end
it "reverses each word in the string returned by the default block" do
result = reverser do
"hello dolly"
end
result.should == "olleh yllod"
end
end
Я собрал вместе некоторый код, который, как мне кажется, должен удовлетворять этим условиям:
reverser = Proc.new do |string|
words = string.split(/\b/)
answer = ''
i = 0
while i < words.count
answer = answer + words[i].reverse
i += 1
end
answer
end
def reverser
yield
end
Тем не менее, когда я использую грабли, моя ошибка говорит мне, что я не выполнил первое условие.
expected: "olleh"
got: "hello"
Что-то мне не хватает? Я просто не разбираюсь в процессах?
Этот вопрос в той или иной форме уже был задан участником по имени pete, и на него довольно хорошо ответил другой пользователь с именем mind.blank. Это источник:
Код mind.blank был прост и работал правильно, но я не хочу просто копировать его, не понимая, почему мой не работает. Заранее благодарю за любую помощь.