💭
【bugs.ruby Advent Calender】Boolean() メソッドを追加する提案【12日目】
bugs.ruby Advent Calender 12日目の記事です。
これはなに
今年1年間通してみてきた bugs.ruby のチケットの中から気になったものを1つずつ取り上げていく Advent Calender です。
取り上げるチケットは基本的にこのブログで取り上げたものになります。
記事のまとめは ここを参照 してください。
[Feature #20882] Provide Boolean(...)
Integer(...)
や Float(...)
と同じように任意の値から true / false
に変換する Boolean(...)
メソッドを追加する提案になります。
# nil は false
pp Boolean(nil)
# => false
# nil の場合はデフォルト値で制御できる
pp Boolean(nil, true)
# => true
# false っぽい文字列は false になる
# こっちはデフォルト値に依存しない
pp Boolean("0", true)
# => false
# true っぽい文字列は true になる
# こっちはデフォルト値に依存しない
pp Boolean("1", true)
# => false
例えば HOGE_DISABLE=1
みたいな環境変数が設定されている場合にその環境変数の値が true / false
なのかを判定したいことを想定しているみたいですね。
実際にそういうことは稀によくあるので『いい感じに』 true / false
に変換するメソッドがあると便利そうではありますねー。
課題としてはそもそも『 true
になるのはどういう値なのか』みたいなところを定義するのが難しそうですね。
チケット内では例えば yes / no
みたいな場合はどうするのか、みたいな話とかもでています。
こういうのをどこまで考慮するのかは難しそう。
あと今まで [Feature #20756] Introduce Boolean class みたいに Boolean
クラスを定義する提案はいくつかあった気がするんですが true / false
に変換するような提案はなかった気がするのでそういう意味でいうと新鮮でしたね。
Discussion