| Class | TracePoint |
| In: |
lib/more/facets/tracepoint.rb
|
| Parent: | Object |
A TracePoint is a Binding with the addition of event information. Among other things, it functions very well as the join-point for Event-based AOP.
TracePoint.trace { |tp|
puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
}
1 + 1
produces
Class trace return true false Object line false false Fixnum + c-call false false Fixnum + c-return false false
You can‘t subclass Binding, so we delegate (which is better anyway).
| EVENT_MAP | = | { :all => ['call', 'c-call', 'return', 'c-return', 'line', 'class', 'end', 'raise'], :before => ['call', 'c-call'], :after => ['return', 'c-return'], :call => ['call'], :return => ['return'], :ccall => ['c-call'], :creturn => ['c-return'], :line => ['line'], :class => ['class'], :end => ['end'], :raise => ['raise'] | methods for working with events |
| back_binding | [RW] | — instance ——————- |
| binding | [RW] | — instance ——————- |
| event | [RW] | — instance ——————- |
Until Ruby has a built-in way to get the name of the calling method that information must be passed into the TracePoint.