Я работаю над некоторыми проблемами домашней работы для рубинового курса, и у меня были некоторые проблемы с моим ответом. В принципе мне нужно создать программу, которая может удовлетворить эти условия:Ruby: Proc для изменения строки
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. Это источник:
Beginner RSpec: Need help writing Ruby code to pass RSpec tests (Silly Blocks exercise).
Код mind.blank был прост и работал правильно, но я не просто хочу его копировать, не понимая, почему мой не работает. Заранее благодарю за любую помощь.
мажор. ты прав. – prater
Спасибо за подсказку. Это был ответ, что парень из другой темы опубликовал. Я просто не хотел красть его код, не зная почему. Но теперь я понимаю это немного больше. – zethsaber