ruby-trunk-changes r56854 - r56861

今日は ?a のような 1文字リテラル(?)が文字列連結しないようにする変更や Net::FTP.new のオプション引数の追加などがありました。

nobu: r56854 2016-11-21 11:17:29 +0900

Integer#round や Float#round などのキーワード引数 half の値が文字列や Symbol じゃなかった時を考慮するようにして、またエラーメッセージを少し変更しています。

svn: r56855 2016-11-21 11:17:29 +0900

version.h の日付更新。

nobu: r56856 2016-11-21 12:13:59 +0900

?a のように書くと "a" のような1文字の文字列になるリテラル(1.8 以前はこの文字の文字コードの Integer を返すものでしたが 1.9 から文字列を返すようになりました)が、文字列リテラルの連結("a" "b" のように文字列リテラルを並べると "ab" のように連結として扱われるという仕様があります)が効いてしまっていたのを、文法エラーになるようにしています。

rhe: r56857 2016-11-21 14:02:58 +0900

標準添付ライブラリ net/http で proxy 利用時に OpenSSL::SSL::SSLSocket を利用している時に TLS のセッション確立前に書き込みを行うと元になる Socket に直接書き込んでくれるのですが、この時警告が出るので、SSLSocket の挙動に頼らずに plain socket に書き込みを行うようにしています。

shugo: r56860 2016-11-21 17:55:25 +0900

標準添付ライブラリ net/ftp で Net::FTP::BufferedSocket#shutdown の実装を @io に委譲するだけのシンプルなものに戻して、SSLSocket 向けには BufferedSSLSocket というクラスを新設してそこでは shutdown はなにもしないメソッドとして定義することで分岐のかわりとしています。

shugo: r56861 2016-11-21 19:38:31 +0900

標準添付ライブラリ net/ftp の Net::FTP.new に r56834 が option 形式の引数に対応しましたが、ここに :open_timeout と :read_timeout というオプションを追加して、それぞれ Socket からの connect と read のタイムアウトを設定できるようにしています。