Ruby 2.6 の変更点 - Binding, flip-flop

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

qiita.com

Binding

Binding#source_location 追加

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

binding のファイル名と行番号を返します。

1: def hoge
2:   binding
3: end
4: hoge.source_location  #=> ["hoge.rb", 2]

flip-flop 非推奨

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

NEWS から漏れてたのが 2.6.0-rc2 で追記されたので追加。

個人的には flip-flop は存在は知っていたものの1回も使ったことないし、構文がよくわからないし、パッと見て理解できない謎の機能でした。次のバージョンから無くなるようです。

flip-flop はこんな感じで使えるみたいです。

10.times{|i| p i if (i==3)..(i==6)}
#=> 3, 4, 5, 6

うむ、わからん。

Ruby 2.6 では実行すると flip-flop is deprecated という warning が出力されます。