Здесь CSV - полностью текстовые данные строки, представленные запятой.
all
- это массив данных, которые должны быть записаны в файл CSV, поэтому я предлагаю вам сначала отсортировать данные по всем необходимым параметрам, а затем записать в файл CSV.
all = [["Ut", "2009-01-12"], ["TY", "2003-12-21"], ["Rt", "2008-05-20"]]
Теперь сортируйте его, как показано ниже , если ваша дата состояния равна 2-му значению во внутреннем массиве
> all.sort! { |a,b| DateTime.parse(a[1]) <=> DateTime.parse(b[1]) }
# => [["TY", "2003-12-21"], ["Rt", "2008-05-20"], ["Ut", "2009-01-12"]]
Теперь вы можете записать эти отсортированные данные в CSV-файл.
Или вы можете использовать, (как @Stefan предложил в комментариях ниже)
all.sort_by! { |a| a[1] }