これは圏です(はてな使ったら負けだとおもっていた)

きっと何者にもなれないつぎの読者につづく。

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。ごめんなさいです