Как я могу убедиться, что метод выполняется один раз. Если метод A вставлен внутри метода Ai в качестве блока для вторичных методов, не выполняется. Что-то вроде этого:Выполнение того же кодового блока (выход)
def a
puts "|start|"
yield
puts "|end|"
end
a do
a { "|test_one|" }
a { "|test_two|" }
end
=> "|start||test_one||test_two||end|"
Не нравится:
=> "|start|test_one|start|end|test_two|end|"
Ваш пример не может работать, 'a '| test_one |" 'будет возвращать недопустимое количество аргументов, потому что вам нужно предоставить блок методу' a' – Grych
@Grych Я скорректировал пример –
Еще не очень хороший пример. Блок '' | test one | "' просто возвращает строку, ничего не пишет в консоли. Пожалуйста, объясните, что вы хотите заархивировать. – Grych