Métodos Ruby: todos? vs qualquer?

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.