class RubyProf::CallTreeVisitor
The call info visitor class does a depth-first traversal across a list of call infos. At each call_tree node, the visitor executes the block provided in the visit
method. The block is passed two parameters, the event and the call_tree instance. Event will be either :enter or :exit.
visitor = RubyProf::CallTreeVisitor.new(result.threads.first.call_tree) method_names = Array.new visitor.visit do |call_tree, event| method_names << call_tree.target.full_name if event == :enter end puts method_names
Public Class Methods
new(call_tree)
click to toggle source
# File lib/ruby-prof/call_tree_visitor.rb, line 18 def initialize(call_tree) @call_tree = call_tree end
Public Instance Methods
visit(&block)
click to toggle source
# File lib/ruby-prof/call_tree_visitor.rb, line 22 def visit(&block) visit_call_tree(@call_tree, &block) end
Private Instance Methods
visit_call_tree(call_tree) { |call_tree, :enter| ... }
click to toggle source
# File lib/ruby-prof/call_tree_visitor.rb, line 28 def visit_call_tree(call_tree, &block) yield call_tree, :enter call_tree.children.each do |child| visit_call_tree(child, &block) end yield call_tree, :exit end