Sha256: 6fd323fd2dd64197024ffc5620f39200e9fc63a43585e8d626f868f5d0fdc9c9
Contents?: true
Size: 440 Bytes
Versions: 7
Compression:
Stored size: 440 Bytes
Contents
module Enumerable # Modulate. Divide an array into groups by modulo of the index. # # [2,4,6,8].modulate(2) #=> [[2,6],[4,8]] # # CREDIT: Trans # # NOTE: Would this be better named 'collate'? def modulate(modulo) return to_a if modulo == 1 raise ArgumentError, 'bad modulo' if size % modulo != 0 r = Array.new(modulo, []) (0...size).each do |i| r[i % modulo] += [self[i]] end r end end
Version data entries
7 entries across 7 versions & 2 rubygems