Ruby2.6アドベントカレンダーの19日目の記事です。
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#filter
が Struct#select
の別名として追加されました。
Random
Random.bytes
追加
https://bugs.ruby-lang.org/issues/4938
指定したサイズのランダムなバイト列を生成します。
Random::DEFAULT.bytes
と同じです。