У меня есть вонючий метод вроде:
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
Есть ли хорошая рубиновая идиома для "результата возврата вызова до нуля"?
Или просто написать метод return_unless_nil(&blk)
?
(Обратите внимание, что аргументы разные для каждого вызова, поэтому я не могу просто просто перебирать их)