To split a Ruby array into two equally-sized (+/-1) parts:
left,right = a.each_slice( (a.size/2.0).round ).to_a
For example:
a = [1,2,3,4,5] # => [1, 2, 3, 4, 5] a.each_slice( (a.size/2.0).round ).to_a # => [[1, 2, 3], [4, 5]]