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
にも値を渡したいよねー』という提案。
まあわからなくはない。