Class: AppMap::Trace::MethodCall
- Inherits:
-
MethodEvent
- Object
- Struct
- MethodEventStruct
- MethodEvent
- AppMap::Trace::MethodCall
- Defined in:
- lib/appmap/trace/tracer.rb
Constant Summary
Constants inherited from MethodEvent
AppMap::Trace::MethodEvent::COUNTER_LOCK, AppMap::Trace::MethodEvent::LIMIT
Instance Attribute Summary collapse
-
#parameters ⇒ Object
Returns the value of attribute parameters.
-
#receiver ⇒ Object
Returns the value of attribute receiver.
Attributes inherited from MethodEventStruct
#defined_class, #event, #id, #lineno, #method_id, #path, #static, #thread_id
Class Method Summary collapse
- .build_from_tracepoint(mc = MethodCall.new, tp, path) ⇒ Object
- .collect_parameters(tp) ⇒ Object
- .collect_self(tp) ⇒ Object
Instance Method Summary collapse
Methods inherited from MethodEvent
display_string, next_id, value_in_binding
Instance Attribute Details
#parameters ⇒ Object
Returns the value of attribute parameters.
117 118 119 |
# File 'lib/appmap/trace/tracer.rb', line 117 def parameters @parameters end |
#receiver ⇒ Object
Returns the value of attribute receiver.
117 118 119 |
# File 'lib/appmap/trace/tracer.rb', line 117 def receiver @receiver end |
Class Method Details
.build_from_tracepoint(mc = MethodCall.new, tp, path) ⇒ Object
121 122 123 124 125 126 127 |
# File 'lib/appmap/trace/tracer.rb', line 121 def build_from_tracepoint(mc = MethodCall.new, tp, path) mc.tap do |_| mc.parameters = collect_parameters(tp) mc.receiver = collect_self(tp) MethodEvent.build_from_tracepoint(mc, tp, path) end end |
.collect_parameters(tp) ⇒ Object
137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/appmap/trace/tracer.rb', line 137 def collect_parameters(tp) -> { tp.self.method(tp.method_id).parameters rescue [] }.call.collect do |pinfo| kind, key = pinfo value = value_in_binding(tp, key) { name: key, class: value.class.name, object_id: value.__id__, value: display_string(value), kind: kind # :req, :rest, :key, :keyrest, :block } end end |
.collect_self(tp) ⇒ Object
129 130 131 132 133 134 135 |
# File 'lib/appmap/trace/tracer.rb', line 129 def collect_self(tp) { class: tp.self.class.name, object_id: tp.self.__id__, value: display_string(tp.self) } end |
Instance Method Details
#to_h ⇒ Object
152 153 154 155 156 157 |
# File 'lib/appmap/trace/tracer.rb', line 152 def to_h super.tap do |h| h[:parameters] = parameters h[:receiver] = receiver end end |