💭

【bugs.ruby Advent Calender】Boolean() メソッドを追加する提案【12日目】

2024/12/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 に変換するような提案はなかった気がするのでそういう意味でいうと新鮮でしたね。

関連

GitHubで編集を提案

Discussion