Как потребовать блок в Ruby? - PullRequest
18 голосов
/ 22 февраля 2010

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

Ответы [ 2 ]

23 голосов
/ 22 февраля 2010

Просто с помощью yield.

Если вы включите в метод yield, а для блока будет , а не , он выдаст ошибку

Поместите это в файл и запустите:

def needs_block
    yield
end

needs_block

Это выдаст ошибку, подобную этой:

LocalJumpError: no block given
    from (irb):14:in `needs_block'
    from (irb):16
12 голосов
/ 25 февраля 2010
raise 'need block' unless block_given?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...