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