У меня есть массив объектов, некоторые из которых отвечают на: 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
?