Class: Lowkey::MethodCallVisitor

Inherits:
Object
  • Object
show all
Includes:
Query
Defined in:
lib/visitors/method_call_visitor.rb

Instance Method Summary collapse

Methods included from Query

#namespace, #query

Constructor Details

#initialize(file_proxy:, parent_map:) ⇒ MethodCallVisitor

Returns a new instance of MethodCallVisitor.



9
10
11
12
# File 'lib/visitors/method_call_visitor.rb', line 9

def initialize(file_proxy:, parent_map:)
  @file_proxy = file_proxy
  @parent_map = parent_map
end

Instance Method Details

#visit(node) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/visitors/method_call_visitor.rb', line 14

def visit(node)
  namespace = namespace(node:, parent_map:) || return
  module_proxy = file_proxy[namespace]

  module_proxy.method_calls << node
  upsert_dependency(node:, namespace:)

  return unless node.name == :private && node.respond_to?(:start_line) && module_proxy.start_line && module_proxy.end_line
  return unless node.start_line > module_proxy.start_line && node.start_line < module_proxy.end_line

  module_proxy.private_start_line = node.start_line
end