all?
:
O método retorna verdadeiro se o bloco NUNCA retorna falso ou nulo.
["ant", "bear", "cat"].all? { |word| word.length >= 3 } #=> true
["ant", "bear", "cat"].all? { |word| word.length >= 4 } #=> false
any?
:
O método retorna verdadeiro se o bloco EVER retornar um valor diferente de falso ou nulo.
["ant", "bear", "cat"].any? { |word| word.length >= 3 } #=> true
["ant", "bear", "cat"].any? { |word| word.length >= 4 } #=> true
Magia profunda:
[].all? #=> true
Portanto, como o bloco nunca é chamado, é claro que ele nunca retorna falso ou nulo, portanto, tudo retorna verdadeiro.
[].any? #=> false
Como o bloco nunca é chamado, ele nunca retorna um valor diferente de falso ou nulo, portanto, qualquer um retorna falso.