Conversão para booleano em Ruby

Como você provavelmente sabe, ruby ​​não tem Booleanclasse truee falsesão instâncias de suas próprias classes TrueClasse FalseClass. Kernelmódulo adiciona vários métodos para conversão entre os tipos primitivos, como Array(), Integer(), Float()etc. de espaço global no entanto Boolean()está faltando. Vamos fazer isso!

module Conversions

module_function


def Boolean(value)
case value
when true, 'true', 1, '1', 't' then true
when false, 'false', nil, '', 0, '0', 'f' then false
else
raise
ArgumentError, "invalid value for Boolean(): "#{value.inspect}""""
end
end

end

Edit: Como sugerido por @dacoxall em commetns