У меня есть метод, который дает:
def a_method(*params)
# do something
yield
# do something else
end
Я хочу, чтобы этот метод дал блок, если блок передан; и если ни один блок не передан, метод должен слегка пропускать выходное значение без сбоев с чем-то вроде:
no block given (yield) (LocalJumpError)
Конечно, самый простой способ - изменить метод на:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
Но не все ли красивее?