class Mudguard::Domain::DependencyVisitor

Transforms AST-Nodes into Dependencies

Attributes

dependencies[R]

Public Class Methods

new(consts:) click to toggle source
# File lib/mudguard/domain/dependency_visitor.rb, line 7
def initialize(consts:)
  @consts = consts
  @dependencies = []
end

Public Instance Methods

visit_const_declaration(_, __, ___) click to toggle source

rubocop:disable Naming/MethodParameterName

# File lib/mudguard/domain/dependency_visitor.rb, line 28
def visit_const_declaration(_, __, ___); end
visit_dependency(location, const_name, module_name) click to toggle source
# File lib/mudguard/domain/dependency_visitor.rb, line 14
def visit_dependency(location, const_name, module_name)
  qualified_const_name = @consts.resolve(module_name, const_name)
  return [] unless qualified_const_name&.include?("::")

  dependency = if module_name.empty?
                 "->#{qualified_const_name}"
               else
                 "#{module_name}->#{qualified_const_name}"
               end

  @dependencies << Dependency.new(location: location, dependency: dependency)
end