Class: RubyProf::CallInfoVisitor
- Inherits:
-
Object
- Object
- RubyProf::CallInfoVisitor
- Defined in:
- lib/ruby-prof/call_info_visitor.rb
Overview
The call info visitor class does a depth-first traversal across a list of method infos. At each call_info node, the visitor executes the block provided in the #visit method. The block is passed two parameters, the event and the call_info instance. Event will be either :enter or :exit.
visitor = RubyProf::CallInfoVisitor.new(result.threads.first.root_methods)
method_names = Array.new
visitor.visit do |call_info, event|
method_names << call_info.target.full_name if event == :enter
end
puts method_names
Instance Method Summary collapse
-
#initialize(root_methods) ⇒ CallInfoVisitor
constructor
A new instance of CallInfoVisitor.
- #visit(&block) ⇒ Object
Constructor Details
#initialize(root_methods) ⇒ CallInfoVisitor
Returns a new instance of CallInfoVisitor.
18 19 20 |
# File 'lib/ruby-prof/call_info_visitor.rb', line 18 def initialize(root_methods) @call_infos = root_methods.map(&:callers).flatten end |
Instance Method Details
#visit(&block) ⇒ Object
22 23 24 25 26 |
# File 'lib/ruby-prof/call_info_visitor.rb', line 22 def visit(&block) @call_infos.each do |call_info| visit_call_info(call_info, &block) end end |