defined_class()
Instance Public methods
Return class or module of the method being called.
1 2 3 4 5 6 | class C ; def foo; end ; end trace = TracePoint. new ( :call ) do |tp| p tp.defined_class #=> C end .enable do C . new .foo end |
If method is defined by a module, then that module is returned.
1 2 3 4 5 6 7 | module M ; def foo; end ; end class C ; include M ; end ; trace = TracePoint. new ( :call ) do |tp| p tp.defined_class #=> M end .enable do C . new .foo end |
Note: defined_class returns singleton class.
6th block parameter of Kernel#set_trace_func passes original class of attached by singleton class.
This is a difference between Kernel#set_trace_func and TracePoint.
1 2 3 4 5 6 | class C ; def self .foo; end ; end trace = TracePoint. new ( :call ) do |tp| p tp.defined_class #=> #<Class:C> end .enable do C .foo end |
Please login to continue.