If you want to sort values from an enumerable into two arrays based on whether they match a certain criteria or not,
Enumerable#partition
Show archive.org snapshot
can come in handy.
# Enumerable#partition returns two arrays,
# the first containing the elements of enum
# for which the block evaluates to true,
# the second containing the rest.
(1..6).partition { |v| n.even? } #=> [[2, 4, 6], [1, 3, 5]]
Works well with destructuring assignment, too.
even, odd = (1..6).partition { |n| n.even? }
even #=> [2, 4, 6]
odd #=> [1, 3, 5]
Posted to makandra dev (2015-03-09 19:53)