Ruby - Jak rozróżniać elementy parzyste od nieparzystych w pętli

Czasami w trakcie pisania różnego rodzaju skryptów konieczne staje się rozróżnienie parzystych i nieparzystych iteracji w pętli. Jeżeli nie zamierzamy używać w tym celu helpera cycle z modułu ActiveSupport - możemy po prostu zdefiniować w klasie Array nową metodę - nazwijmy ją each_with_index_parity.

Jej implementacja może wyglądać na przykład tak:

class Array

  def each_with_index_parity
    self.each_with_index do |entry, index|
      yield(entry, index, index % 2 == 0 ? :even : :odd)
    end
  end
end

Teraz można już korzystać z jej dobordziejstw:

@records.each_with_index_parity do |record, index, parity|

 #nasza implementacja....

 end

U mnie to działa i jest bardzo przydatne.

Komentarz