勝手にActiveSupportっぽいことをするシリーズ

module ::Boolean
  def then
    self
  end

  def else
    self
  end
end

class ::TrueClass
  include Boolean

  def then
    yield
    self
  end

  def else
    self
  end
end

class ::FalseClass
  include Boolean

  def then
    self
  end

  def else
    yield
    self
  end
end

リファレンスに # -> Bool って出てくるのにないのは気持ち悪いので。
これで真偽値かどうかを self === Boolean と書けるようになった。
いまいち誰がどう得するのかわからないけど、テストとか書くとき楽になるんじゃないかなあ? そうでもないかなあ。

これをやるのにインターフェースみたいのを Boolean で定義しといた。インターフェースっていうのかな…。