0
RubyのTracePoint APIを使用して、特定のクラス(たとえば 'Resolv')の定義とその後の再定義をトラップする方法を探しています。Ruby TracePoint:特定のクラスの定義をトラップする方法は?
TracePoint.trace(:class) do |tp|
require 'pry'; binding.pry # for example
end
をしかし、私はトラップだけResolv
クラスをすることができるように:class
または:end
のいずれかのパラメータを使用して、それをフィルタリングすることができません:私は使用しているすべてのクラス定義は、トラップにできています。 TracePoint
オブジェクトはdefined_class
属性を持っていますが、クラス定義の時点で誰が自己であるか(nil
、別名(main)
)、定義を処理しようとしているクラスではありません。また、どのファイルと行が処理されているかを知る方法も見つけられませんでした。 は、binding
という変数ですが、変数はありません。
どうすればいいですか?
はあなたのラインを与えるtp.path' '' tp.lineno'をせず、ファイル? – SteveTurczyn
はい、そうです。どのように私はそれを逃したのか分からない。ありがとう。 –