У меня есть неприятный метод вроде:
def search_record(*args)
record = expensive_operation_1(foo)
return record unless record.nil?
record = expensive_operation_2(foo, bar)
return record unless record.nil?
record = expensive_operation_3(baz)
return record unless record.nil?
record = expensive_operation_4(foo, baz)
return record unless record.nil?
end
Есть ли хорошая рубиновая идиома для «вернуть результат вызова, если не nil»?
Или мне просто написать метод return_unless_nil (& blk)
?
(Обратите внимание, что аргументы различаются для каждого вызова, поэтому я не могу просто перебирать их)