Skip to content

Instantly share code, notes, and snippets.

@mconnell
Created September 14, 2010 21:14
Show Gist options
  • Save mconnell/579783 to your computer and use it in GitHub Desktop.
Save mconnell/579783 to your computer and use it in GitHub Desktop.
# divide an array with one pint too many
class Array
def /(divider)
divider = divider.to_i
collection_size = size / divider
array = []
each_with_index do |element, index|
index % collection_size == 0 && divider != array.size ? array << [element] : array.last.push(element)
end
array.size == 1 ? array.flatten! : array
end
end
# ruby-1.8.7-p299 > (1..25).to_a / 5
# => [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment