Как я могу избежать правдивости в Ruby?
Есть ли какой-нибудь стандартный способ избежать правдивости в Ruby, или мне нужно было бы применить собственное решение, такое как
class FalseClass
def to_bool
self
end
end
class TrueClass
def to_bool
self
end
end
true.to_bool # => true
false.to_bool # => false
nil.to_bool # => NoMethodError
42.to_bool # => NoMethodError
Фон: я знаю этоto_bool
будет идти против разрешающей природы Ruby, но я играю с троичной логикой и хочу избежать случайного выполнения чего-то вроде
require "ternary_logic"
x = UNKNOWN
do_something if x
Я использую троичную логику, потому что я пишу синтаксический анализатор веб-сайта с общим доступом (для личного, а не коммерческого использования), и в некоторых полях может отсутствовать информация, и поэтому неизвестно, будет ли это место соответствует моим критериям или нет. Однако я бы попытался ограничить количество кода, использующего троичную логику.