Sha256: 6c35355a6885d1cb65ae2ada970fcfb400a84364fe9db8e60869b4d3eddd51c3

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

# typed: strict
# frozen_string_literal: true

module Packwerk
  module ReferenceChecking
    class ReferenceChecker
      extend T::Sig

      sig { params(checkers: T::Array[Checkers::Checker]).void }
      def initialize(checkers)
        @checkers = checkers
      end

      sig do
        params(
          reference: Reference
        ).returns(T::Array[Packwerk::Offense])
      end
      def call(reference)
        @checkers.each_with_object([]) do |checker, violations|
          next unless checker.invalid_reference?(reference)
          offense = Packwerk::ReferenceOffense.new(
            location: reference.source_location,
            reference: reference,
            violation_type: checker.violation_type
          )
          violations << offense
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
packwerk-2.2.0 lib/packwerk/reference_checking/reference_checker.rb