Class: AppMap::Tracer
- Inherits:
-
Object
- Object
- AppMap::Tracer
- Defined in:
- lib/appmap/trace.rb
Instance Method Summary collapse
-
#disable ⇒ Object
Private function.
- #enable ⇒ Object
- #enabled? ⇒ Boolean
-
#event? ⇒ Boolean
Whether there is an event available for processing.
-
#event_methods ⇒ Object
Gets a unique list of the methods that were invoked by the program.
-
#initialize ⇒ Tracer
constructor
Records the events which happen in a program.
-
#next_event ⇒ Object
Gets the next available event, if any.
-
#record_event(event, defined_class: nil, method: nil) ⇒ Object
Record a program execution event.
Constructor Details
#initialize ⇒ Tracer
Records the events which happen in a program.
52 53 54 55 56 |
# File 'lib/appmap/trace.rb', line 52 def initialize @events = [] @methods = Set.new @enabled = false end |
Instance Method Details
#disable ⇒ Object
Private function. Use AppMap.tracing#delete.
67 68 69 |
# File 'lib/appmap/trace.rb', line 67 def disable # :nodoc: @enabled = false end |
#enable ⇒ Object
58 59 60 |
# File 'lib/appmap/trace.rb', line 58 def enable @enabled = true end |
#enabled? ⇒ Boolean
62 63 64 |
# File 'lib/appmap/trace.rb', line 62 def enabled? @enabled end |
#event? ⇒ Boolean
Whether there is an event available for processing.
87 88 89 |
# File 'lib/appmap/trace.rb', line 87 def event? !@events.empty? end |
#event_methods ⇒ Object
Gets a unique list of the methods that were invoked by the program.
82 83 84 |
# File 'lib/appmap/trace.rb', line 82 def event_methods @methods.to_a end |
#next_event ⇒ Object
Gets the next available event, if any.
92 93 94 |
# File 'lib/appmap/trace.rb', line 92 def next_event @events.shift end |
#record_event(event, defined_class: nil, method: nil) ⇒ Object
Record a program execution event.
The event should be one of the MethodEvent subclasses.
74 75 76 77 78 79 |
# File 'lib/appmap/trace.rb', line 74 def record_event(event, defined_class: nil, method: nil) return unless @enabled @events << event @methods << Trace::ScopedMethod.new(defined_class, method, event.static) if (defined_class && method && event.event == :call) end |