Using Ruby I want to evaluate all items in an array, and return true if they all pass a conditional test.

I can do this using e.g. array.all? { |value| value == 2 }

So:

> array=[2,2]
> array.all? { |value| value == 2 }
=> true
> array=[2,3]
> array.all? { |value| value == 2 }
=> false

Great!

But, why does an empty array pass this test?

> array=[]
> array.all? { |value| value == 2 }
=> true

Shouldn't this return false?

And if I need it to return false, how should I modify the method?

Edit
Report