ruby-trunk-changes r55225 - r55228

今日は String#downcase などの casemap 関連メソッドのデフォルトの挙動変更、が入りかけたんですけどテストがこけてたので revert されました。 また標準添付ライブラリ optparse の不具合修正がありました。

duerst: r55225 2016-05-31 10:10:06 +0900

String#downcase, #upcase, #capitalize, #swapcase などでデフォルトの挙動を :ascii が指定された場合と同様にしていたのを Encoding が UTF-8 だったら Unicode の casemap を意識した挙動になるように変更しています。

naruse: r55226 2016-05-31 11:56:09 +0900

r55225 の変更でテストが失敗していたので一旦 revert しています。

nobu: r55227 2016-05-31 17:26:30 +0900

標準添付ライブラリ optparse の OptionParser#parse_in_order で正規表現にマッチした後の $1, $2, $3 などでの capture 部分の参照で変数を繰り返し参照していたのをやめています。 $1 などの参照はそのたびに新しい文字列オブジェクトを生成するそうです。

nobu: r55228 2016-05-31 17:28:48 +0900

標準添付ライブラリ optparse でオプションに正規表現の文字クラスのような記法を使える機能があるそうで(知りませんでした) "-[a-z]" のような short option の指定をした時に、オプションの補完処理で例外が発生していたのを修正しています。またこの記法を使ったオプションはブロックを呼び出す時に引数がなくてもどの文字が使われたかがブロックに渡されるので、ブロックパラメータ必須にしています。 [ruby-core:75773] [Bug #12438]