Class: Orthoses::CallTracer

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Methods included from Capturable

#build_capture

Constructor Details

#initializeCallTracer

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

#capturesObject

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