Идиома Ruby «return if nil»

У меня есть неприятный метод вроде:

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) ?

(Обратите внимание, что аргументы различаются для каждого вызова, поэтому я не могу просто перебирать их)

16
задан Sisyphus 19 June 2011 в 17:04
поделиться