class Packwerk::NodeProcessor
Public Class Methods
new(reference_extractor:, filename:, checkers:)
click to toggle source
# File lib/packwerk/node_processor.rb, line 15 def initialize(reference_extractor:, filename:, checkers:) @reference_extractor = reference_extractor @filename = filename @checkers = checkers end
Public Instance Methods
call(node, ancestors)
click to toggle source
# File lib/packwerk/node_processor.rb, line 22 def call(node, ancestors) return [] unless Node.method_call?(node) || Node.constant?(node) reference = @reference_extractor.reference_from_node(node, ancestors: ancestors, file_path: @filename) check_reference(reference, node) end
Private Instance Methods
check_reference(reference, node)
click to toggle source
# File lib/packwerk/node_processor.rb, line 30 def check_reference(reference, node) return [] unless reference @checkers.each_with_object([]) do |checker, violations| next unless checker.invalid_reference?(reference) offense = Packwerk::ReferenceOffense.new( location: Node.location(node), reference: reference, violation_type: checker.violation_type ) violations << offense end end