Ruby 3.2 アドベントカレンダーの7日目の記事です。
Ruby 3.2.0 RC1 がリリースされたので、ネタ元を Ruby 3.2 RC1 の NEWS.md に変更。
6日目までに書いた内容は特に変更なさそう。
Coverage
eval でもカバレッジデータを取得可能
Feature #19008: Introduce coverage support for eval
. - Ruby master - Ruby Issue Tracking System
eval: true
を指定すると eval したときでもカバレッジデータを取得できるようになった。
require 'coverage' Coverage.start(lines: true, eval: true) s = <<EOS 10.times do |i| # ここは1回 if i.odd? # ここは10回 1 # ここは5回 else 2 # ここは5回 end end EOS eval s, nil, 'hoge' pp Coverage.result #=> {"hoge"=>{:lines=>[1, 10, 5, nil, 5, nil, nil]}}
便利。
Coverage.supported? 追加
Coverage がサポートしてる機能を検査できる。
require 'coverage' pp Coverage.supported?(:eval) #=> true pp Coverage.supported?(:hoge) #=> false