У меня есть массив объектов, некоторые из которых отвечают: description, и я хочу получить описание от первого с достоверным описанием. Я мог бы сделать это:
objects.detect{|o| o.try(:description)}.description
или это:
objects.map{|o| o.try(:description)}.detect{|o| o}
, но первый не СУХОЙ (описание приведено там дважды), а второй перебирает весь массив перед тем, как найти значение. Есть ли что-нибудь в стандартной библиотеке ruby или в расширениях Rails, что позволило бы мне сделать что-то вроде этого:
objects.detect_and_return{|o| o.try(:description)}
Я знаю, что мог бы написать это достаточно легко, но стандартные библиотеки достаточно велики, что мне может и не понадобиться. Есть ли функция, которая работает как мой detect_and_return
?