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

Есть ли лучшие способы предотвратить "выход", когда не передается блок?

У меня есть метод, который дает:

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

Но не все ли красивее?

4b9b3361

Ответ 1

Да!:)

def a_method(*params)
  # ...
  yield if block_given?
  # ...
end