bool? 実装
TrueClass | FalseClass の親クラスBoolClass(仮)が欲しい! on Ruby - ASIPのRubyistなるままにより。
via jijixi's diary - bool
まあ私もBoolClassとかいらない気がするんですが、まあそう言う是非論は措いとくとして、このためだけにClass追加しちゃうのはあんまり美しくない!と思います。
jijixiさんのやり方が一番堅実だと思いますが、堅実すぎてつまらないですね!
というわけで、Kernelに追加するだけでFalse | True の検出が出来る方法を考えてみました。
module Kernel def bool? !!self == self end end 2.bool? # => false true.bool? #=> true false.bool? #=> true nil.bool? #=> false "Hello, world!".bool? #=> false $>.bool? #=> false
nil?そんな子もいましたね!知りません。三値論理とかなんですかそれ。
まあ、元記事もTrue/Falseだけだしそれに倣ったということで勘弁です。
と思って元記事を見たら、同じことを考えている人が居たorz。ごめんなさいです