Search code examples
rubytruthiness

Determining "Truthiness" of an expression?


Possible Duplicates:
Check if Ruby object is a Boolean
How can I avoid truthiness in Ruby?

Given an array like the following (for example):

[3, false, "String", 14, "20-31", true, true, "Other String"]

Is there an easier way to determine which elements are actual boolean values without resorting to this, for example?

value === TrueClass || value === FalseClass

Relying on the position in the array is not an option, as it will vary from case-to-case.


Solution

  • You could try (true & value) == value. The part in parentheses seems to always return a boolean; if the value wasn't originally a bool, then it won't be equal to the result. A bool, however, will.