Class: Deprewriter::CallSiteFinder
- Inherits:
-
Prism::Visitor
- Object
- Prism::Visitor
- Deprewriter::CallSiteFinder
- Defined in:
- lib/deprewriter/call_site_finder.rb
Overview
Finds method call sites in source code
Instance Method Summary collapse
-
#find(source) ⇒ Prism::CallNode?
The found method call node.
-
#initialize(method_name, line, from: nil) ⇒ Prism::CallNode?
constructor
The found method call node.
-
#visit_call_node(node) ⇒ void
Visits a call node in the AST.
Constructor Details
#initialize(method_name, line, from: nil) ⇒ Prism::CallNode?
Returns The found method call node.
12 13 14 15 16 17 |
# File 'lib/deprewriter/call_site_finder.rb', line 12 def initialize(method_name, line, from: nil) @method_name = method_name @line = line @node_query = from ? NodeQuery.new(from, adapter: :prism) : nil super() end |
Instance Method Details
#find(source) ⇒ Prism::CallNode?
Returns The found method call node.
21 22 23 24 25 |
# File 'lib/deprewriter/call_site_finder.rb', line 21 def find(source) parsed_result = Prism.parse(source) parsed_result.value.statements.accept(self) @node end |
#visit_call_node(node) ⇒ void
This method returns an undefined value.
Visits a call node in the AST
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/deprewriter/call_site_finder.rb', line 30 def visit_call_node(node) if node.name == @method_name && node.start_line == @line if @node_query matched = @node_query.query_nodes(node, {including_self: true, stop_at_first_match: true, recursive: true}) @node = matched.first if matched.any? else @node = node end end super end |