Я волнуюсь всегда забываю имя

я есть метод, который дает, который выглядит так:

def a_method(*params)
  # do something
  yield
  # do something else
end

Я хочу, чтобы этот метод выдал блок, если блок передан в; и если блок не передается, метод должен плавно пропустить предложение yield без сбоев с чем-то вроде:

 no block given (yield) (LocalJumpError)

Конечно, самым простым способом является изменение метода на:

def a_method(*params, &block)
  # do something
  yield if block
  # do something else
end

Но разве нет более привлекательных способов?

Ответы на вопрос(1)

Ваш ответ на вопрос