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の寛容な性質に反することはわかっていますが、私は3値論理で遊んでおり、誤って次のようなことをしないようにしたいと考えています。
require "ternary_logic"
x = UNKNOWN
do_something if x
私はフラットメイト共有Webサイトのパーサーを書いているので(個人用、商用ではなく)、一部のフィールドで情報が欠落している可能性があるため、3値論理を使用しています。したがって、場所が不明である可能性があります。私の基準を満たしているかどうか。ただし、3値論理を使用するコードの量を制限しようと思います。