Method: Array#chunk

Defined in:
lib/rext/array/helpers.rb

#chunk(n, pad_with = nil, &block) ⇒ Object Also known as: in_groups_of

Split an array into chunks of length n. Optionally you may pad_with an object to retain a uniform length per chunk.

Examples

[1,2,3].chunk(2)         # => [[1,2], [3, nil]]
[1,2,3].chunk(2, 'x')    # => [[1,2], [3, 'x']]
[1,2,3].chunk(2, false)  # => [[1,2], [3]]
[1,2,3].in_groups_of(2) do |chunk|
  # Do something
end

See

  • Array#pad



69
70
71
72
73
74
75
76
77
# File 'lib/rext/array/helpers.rb', line 69

def chunk n, pad_with = nil, &block
  returning [] do |chunks|
    each_slice n do |chunk|
      chunk.pad n, pad_with unless pad_with == false
      yield chunk if block
      chunks << chunk
    end
  end
end