我试图找出如何使用 Ruby 的 TracePoint API 来捕获特定类的定义和随后的重新定义(例如“Resolv”)。我可以使用以下方法捕获所有类定义:
TracePoint.trace(:class) do |tp|
require 'pry'; binding.pry # for example
end
但是,我无法使用其中一个:class或:end参数对其进行过滤,因此我只能捕获Resolv该类。该TracePoint对象有一个defined_class属性,但它包含在类定义时是谁(即nilaka (main)),而不是即将处理其定义的类。我也找不到查看正在处理的文件和行的方法。有一个binding变量,但它不包含变量。
我怎样才能做到这一点?