Como dividir (chunk) um array Ruby em partes de elementos X? [duplicado]

Esta pergunta já tem uma resposta aqui:

Como dividir uma matriz em Ruby 2 respostas

Eu tenho uma matriz

foo = %w(1 2 3 4 5 6 7 8 9 10)

Como posso dividir ou "dividir" isso em matrizes menores?

class Array
  def chunk(size)
    # return array of arrays
  end
end

foo.chunk(3)
# => [[1,2,3],[4,5,6],[7,8,9],[10]]