trueとfalseにrefinmentsを使ってメソッド追加

Rubyでモデルの値がtrueの場合は○。falseの場合は空文字を表示するメソッドが欲しかったのでrefimentsを使って実装したかったけどなかなかうまくいかない。
trueはインスタンスだと思うんだけど何か普通のインスタンスと違うのだろうか。

試行錯誤は省いて結論としてはこうしたらできました.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module BooleanEx
  refine TrueClass do
    def true.to_circle
      "○"
    end
  end

  refine FalseClass do
    def false.to_circle
      ""
    end
  end
end

using BooleanEx

true.to_circle # => "○"
false.to_circle # => ""

Comments