Pergunta

Estou tentando usar o enumerável#cada_slice. Não funciona no meu computador, afirmando que o método não é encontrado.

Estou executando Ruby 1.8.6 (2008-08-11 Patchlevel 287) [Universal-Darwin9.0

API: http://ruby-doc.org/core/classes/enumerable.html#m003142

Exemplo:

(1..10).each_slice(3) {|a| p a} # I get NoMethodError: undefined method `each_slice' for 1..10:Range

O que estou fazendo errado?

Foi útil?

Solução

Em Ruby 1.8.6 você tem que require 'enumerator' (que faz parte do stdlib e foi mesclado no núcleo em 1.8.7+) antes de usar cada_slice.

Infelizmente, os Ruby-Doc listam os métodos adicionados às classes principais do Stdlib sem mencionar de onde são os métodos.

Outras dicas

apenas comparado 1.8.6 a 1,9 e parece

(1..10).respond_to? :each_slice

é verdadeiro em 1.9 e falso em 1.8.6. Portanto, o documento que você está usando não é para 1.8.6. Se você puder atualizar para uma versão mais recente do Ruby facilmente, ele deve fornecer esse método no intervalo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top