Ruby2.6アドベントカレンダーの9日目の記事です。
Exception
Exception#full_message
に :highlight
, :order
オプション追加
https://bugs.ruby-lang.org/issues/14324
2.5 で Exception#full_message
で例外終了時に標準エラー出力に出力されるバックトレース情報を文字列として取得できるようになりました。
この文字列は、標準エラー出力が端末の時にハイライト用のエスケープコードつきで浅い順に生成され、そうでない場合にエスケープコード無しで深い順に生成されます。
表示順とハイライトするかどうかをオプションで指定することができるようになりました。
def hoge raise end def fuga hoge end begin fuga rescue => e e.full_message #=> 標準エラー出力が端末かどうかに依存 e.full_message(highlight: true) #=> ハイライトあり e.full_message(highlight: false) #=> ハイライトなし e.full_message(order: :top) #=> 深い順 e.full_message(order: :bottom) #=> 浅い順 end
これは実際には 2.6 ではなく 2.5.1 からの機能です。