Подтвердить что ты не робот

Как требовать блок в Ruby?

Есть ли встроенный способ требовать, чтобы блок был передан методу Ruby? Я понимаю, что могу просто вызвать исключение, если block_given? является ложным, но есть ли более хороший способ сделать это?

4b9b3361

Ответ 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?