Class: Orthoses::CallTracer
- Inherits:
-
Object
- Object
- Orthoses::CallTracer
- Includes:
- Capturable
- Defined in:
- lib/orthoses/call_tracer.rb,
lib/orthoses/call_tracer/lazy.rb,
lib/orthoses/call_tracer/capturable.rb
Overview
Trace :call event by TracePoint and capture arguments.
def call
scope = CallTracer.new
scope.trace(ActiveRecord::Base.method(:scope)) do
@loader.call
end
scope.captures.each do |capture|
capture.argument[:name]
capture.argument[:body]
capture.argument[:block]
end
Defined Under Namespace
Modules: Capturable Classes: Capture, Lazy
Instance Attribute Summary collapse
-
#captures ⇒ Object
Returns the value of attribute captures.
Instance Method Summary collapse
-
#initialize ⇒ CallTracer
constructor
A new instance of CallTracer.
- #trace(target, &block) ⇒ Object
Methods included from Capturable
Constructor Details
#initialize ⇒ CallTracer
Returns a new instance of CallTracer.
26 27 28 29 30 31 |
# File 'lib/orthoses/call_tracer.rb', line 26 def initialize @captures = [] @target_tp = TracePoint.new(:call) do |tp| @captures << build_capture(tp) end end |
Instance Attribute Details
#captures ⇒ Object
Returns the value of attribute captures.
24 25 26 |
# File 'lib/orthoses/call_tracer.rb', line 24 def captures @captures end |
Instance Method Details
#trace(target, &block) ⇒ Object
33 34 35 |
# File 'lib/orthoses/call_tracer.rb', line 33 def trace(target, &block) @target_tp.enable(target: target, &block) end |