Посмотрите на Enumerable#each_cons
(DataMapper::Collection
включает Enumerable
):
collection.each_cons(2) do |a|
#here a is a 2 element array:
current_value = a[0]
next_value = a[1] #(or just use the array elements directly)
end
с использованием each_cons
означает, что вам не нужно беспокоиться о проверкепоследний элемент в коллекции.
Также существует аналогичный each_slice
, который дает непересекающиеся группы из коллекции.