Альтернатива решению, данному Амаданом:
fruits.all? { |f| f.nil? || f.sweet? }
Хотя идея использования compact
, как правильно сказал Амадан, хороша и лаконична, она, вероятно, создаст временный массив не-nil элементам, хотя для простого использования all?
такой массив не нужен, итерация останавливается, как только встречается элемент, который не удовлетворяет условию.
Конечно, если у вас есть только два плода вваш код, который упоминается прямо, я бы посчитал ваш код лучше понять, чем делать
[apple,pear].all? {...}