Class: AppMap::Tracer

Inherits:
Object
  • Object
show all
Defined in:
lib/appmap/trace.rb

Instance Method Summary collapse

Constructor Details

#initializeTracer

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

#disableObject

Private function. Use AppMap.tracing#delete.



67
68
69
# File 'lib/appmap/trace.rb', line 67

def disable # :nodoc:
  @enabled = false
end

#enableObject



58
59
60
# File 'lib/appmap/trace.rb', line 58

def enable
  @enabled = true
end

#enabled?Boolean

Returns:

  • (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.

Returns:

  • (Boolean)


87
88
89
# File 'lib/appmap/trace.rb', line 87

def event?
  !@events.empty?
end

#event_methodsObject

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_eventObject

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