Ruby 2.6 の変更点 - ENV, Struct, Random

Ruby2.6アドベントカレンダーの19日目の記事です。

qiita.com

ENV

ENV.to_h にブロックを渡すとキーと値を変換できる

https://bugs.ruby-lang.org/issues/15143

ENV.to_h{|k,v| [k.intern, v.length]}
#=> {:PATH=>348, :LANG=>11, :USER=>5, :PAGER=>2, :PWD=>26, :HOME=>11, :TERM=>14, :SHELL=>12}

Struct

Struct#to_h にブロックを渡すとキーと値を変換できる

https://bugs.ruby-lang.org/issues/15143

Hoge = Struct.new(:a, :b, :c)
Hoge.new(1, 2, 3).to_h{|k, v| [k.to_s, v*2]}'
#=> {"a"=>2, "b"=>4, "c"=>6}

Struct#filter 追加

https://bugs.ruby-lang.org/issues/13784

Struct#filterStruct#select の別名として追加されました。

Random

Random.bytes 追加

https://bugs.ruby-lang.org/issues/4938

指定したサイズのランダムなバイト列を生成します。 Random::DEFAULT.bytes と同じです。