Есть ли встроенный способ требовать, чтобы блок был передан методу Ruby? Я понимаю, что могу просто вызвать исключение, если block_given?
является ложным, но есть ли более хороший способ сделать это?
Как требовать блок в Ruby?
Ответ 1
Просто используя yield
.
Если вы включили yield
в метод, а блок не указан, он выдает ошибку.
Поместите это в файл и запустите его:
def needs_block
yield
end
needs_block
Он выдает такую ошибку:
LocalJumpError: no block given
from (irb):14:in `needs_block'
from (irb):16
Ответ 2
raise 'need block' unless block_given?