🔥
[Bug #21272] Class.new でクラスを定義した場合に TracePoint が呼ばれないというバグ報告
[Bug #21272] Class.new doesn't trigger :class TracePoint
-
TracePointではclassの定義に対して処理をフックすることができる
TracePoint.trace(:class) do |tp|
puts "Class created at line: #{tp.lineno}"
end
class Foo; end
__END__
output:
Class created at line: 5
- しかし、次のように
Class.newでクラスを定義した場合にはTracePointが呼ばれないというバグ報告
TracePoint.trace(:class) do |tp|
puts "Class created at line: #{tp.lineno}"
end
Baz = Class.new
__END__
output:
なし
- これに対して
Class.newの場合もサポートするか、もしくはドキュメントで動作を明確にするか、みたいなチケット - 個人的には
Baz = Class.newは『classを定義しているわけではない』と思うのでTracePointでトリガーされるのはやや微妙ですかねえ
Discussion