Я использую RubyMotion, ProMotion и MotionModel для приложения iOS. Мы будем хранить несколько записей, чувствительных к дате/времени, в день и перечислять их в большом TableView. Прямо сейчас записи отображаются в одном большом списке:
Я бы хотел, чтобы записи были сегментированы по дате для лучшей читабельности:
Я предполагаю, что смогу заставить это работать, прокручивая записи моей модели один раз, извлекая массив всех уникальных дат, затем просматривая массив дат и извлекая записи, которые соответствуют. Это сработало бы, но я не могу не думать, что может быть лучший способ справиться с этим с некоторой магией Ruby, с которой я не знаком. Любые предложения очень ценятся!
Если кто-то читает это, знает Ruby или RubyMotion, но не знаком с ProMotion, формат данных, который мне нужно вернуть, имеет следующий формат:
[{
title: "June 12, 2013",
cells: [{
title: "10:00am"
},{
title: "3:15pm"
},{
title: "7:00pm"
},{
title: "10:15pm"
}]
},{
title: "June 06, 2013",
cells: [{
title: "10:00am"
},{
title: "3:15pm"
},{
title: "7:00pm"
},{
title: "10:15pm"
}]
}]
РЕДАКТИРОВАТЬ:
Текущий код, генерирующий ячейки таблицы в обратном хронологическом порядке:
[{
cells: Entries.order{|one, two| two.entry_date <=> one.entry_date}.all.map{ |f|
{
title: Time.at(f.entry_date).strftime("%I:%M %p"), #"%m/%d/%Y"
action: :show_entry,
arguments:
{
entry: f
}
}
}
}]