Como você provavelmente sabe, ruby não tem Boolean
classe true
e false
são instâncias de suas próprias classes TrueClass
e FalseClass
. Kernel
mó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