Гленн Макдональдс короткий, но он использует срез, который не разрешен (помните только каждый).Вот мое:
(0...a.size).each {|index| p a[index, 4] if index % 4 == 0}
, которое также хорошо работает для других размеров массива, здесь применяется к массиву 18 размеров:
>> a = (113..150).to_a.insert(5,55).insert(10,66666).shift(18)
=> [113, 114, 115, 116, 117, 55, 118, 119, 120, 121, 66666, 122, 123, 124, 125, 126, 127, 128]
>> (0...a.size).each {|index| p a[index, 4] if index % 4 == 0}
[113, 114, 115, 116]
[117, 55, 118, 119]
[120, 121, 66666, 122]
[123, 124, 125, 126]
[127, 128]
=> 0...18