class Argtrace::Default
Default
tracing setting.
Public Class Methods
main(rbs_path: "sig.rbs")
click to toggle source
Default
tracing setting. Analyse only user sources, and output them into RBS file.
# File lib/argtrace/default.rb, line 5 def self.main(rbs_path: "sig.rbs") typelib = Argtrace::TypeLib.new tracer = Argtrace::Tracer.new tracer.set_filter do |tp| if [:call, :return].include?(tp.event) ret = tracer.user_source?(tp.defined_class, tp.method_id) # $stderr.puts [tp.event, tp.defined_class, tp.method_id].inspect if ret ret else # $stderr.puts [tp.event, tp.defined_class, tp.method_id].inspect if ret true end end tracer.set_notify do |ev, callinfo| if ev == :return typelib.learn(callinfo.signature) # $stderr.puts callinfo.signature.inspect end end tracer.set_exit do File.open(rbs_path, "w") do |f| f.puts typelib.to_rbs end end tracer.start_trace end