Ruby2.6アドベントカレンダーの23日目の記事です。
Net
Net::HTTP に write_timeout 追加
https://bugs.ruby-lang.org/issues/13396
Net::HTTP.new 時に :write_timeout キーワード引数で設定したり、
Net::HTTP#write_timeout, Net::HTTP#write_timeout=, で参照したり設定したりできます。
デフォルトは60秒です。
Net::HTTPClientException が追加され、Net::HTTPServerException は非推奨
https://bugs.ruby-lang.org/issues/14688
4xx 系のステータスはサーバーエラーじゃなくてクライアントエラーだってことで、名前が変更されたようです。
ただ、Net::HTTPServerException がいきなり無くなると影響が大きいので、Net::HTTPClientException は Net::HTTPServerException の別名として定義されてます。
Net::HTTPServerException を直接呼ぶと warning が出力されます。
require 'net/http' Net::HTTPClientException #=> Net::HTTPServerException Net::HTTPServerException #=> warning: constant Net::HTTPServerException is deprecated
ERB
ERB.new に :trim_mode と :eoutvar キーワード引数追加
https://bugs.ruby-lang.org/issues/14256
ERB.new の2番目以降の引数が定位置じゃなくてキーワード引数になりました。
2番目の引数が safe_level だったのですが、$SAFE の扱いの変更に伴い、これが廃止されます。
そうすると、3, 4番目の引数が困るのでキーワード引数になったという感じのようです。
キーワード引数じゃない引数を2個以上指定すると warning が出力されるようになります(-w 指定時)。
% ruby -w -rerb -e 'ERB.new("", 1, 0, "hoge")'
-e:1: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
-e:1: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.
-e:1: warning: Passing eoutvar with the 4th argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.
erb コマンドの -S オプションが非推奨
これも上と同じ理由です。