3,4月で気になった Ruby のパッチ、提案

書こう書こうと思っていて結局書いてなかったシリーズ。
とりあえず、現状まとめていたやつだけ放出。

Feature #14579: Hash value omission - Ruby trunk - Ruby Issue Tracking System

JavaScript みたいに Hash を定義する時に『値を省略してキーだけ渡して Hash を定義する』みたいな記法の提案。
これ、JavaScript を書いていた時に結構多用していたので Ruby にもめっちゃほしかったんですが、Reject されてしまった模様…。

Feature #14473: Add Range#subrange? - Ruby trunk - Ruby Issue Tracking System

任意の Range が任意の Range の範囲内かどうかを判定するメソッドの提案。
あれば便利そう。

Feature #4824: Provide method Kernel#executed? - Ruby trunk - Ruby Issue Tracking System

Ruby だと『実行したファイルがコマンドラインから呼ばれたかどうか』を判定する場合に

if __FILE__ == $0
  my_main()          # call any method or execute any code
end

みたいに書くんですが、この __FILE__ == $0 をメソッド化してわかりやすくしたいよねーみたいな提案。
かなり前から議論されているんですが、いいメソッド名がないらしくてまだ決まってない模様。

Feature #14585: Array#each_pair - Ruby trunk - Ruby Issue Tracking System

ほしいのはわかるけど名前がいまいち。

Feature #14593: Add Enumerator#concat - Ruby trunk - Ruby Issue Tracking System

今までなんでなかったのか理由が気になる。

Feature #14594: Rethink yield_self's name - Ruby trunk - Ruby Issue Tracking System

yield_self の別名を考える、ということで色々と議論されていたみたいですが、ほぼほぼ then に決まったぽい。

Feature #14022: String#surround - Ruby trunk - Ruby Issue Tracking System

これ、稀によく欲しくなるのでちょっと期待していたんですが、Reject されてしまった模様。

Feature #13383: [PATCH] Module#source_location - Ruby trunk - Ruby Issue Tracking System

Module#source_location の提案 文字通りクラスの定義場所を取得するメソッドだけど、Ruby の場合はオープンクラスをいろんな場所で呼び出す事が出来るので複数ヶ所を取得する必要があって止まってるみたい。
ただ、最後の定義場所を取得できるだけでも便利そう

Feature #14197: Enumerable#{select,reject accept a pattern argument - Ruby trunk - Ruby Issue Tracking System}

collection.reject(/re/) みたいに『#reject にも値を渡したいよねー』という提案。
まあわからなくはない。