Sha256: da2ecfe2d67d9428ef481ecc095a89020c8913df793dd3188e2d590c0497327d

Contents?: true

Size: 857 Bytes

Versions: 2

Compression:

Stored size: 857 Bytes

Contents

# typed: strict
# frozen_string_literal: true

module Packwerk
  class NodeProcessorFactory < T::Struct
    extend T::Sig

    const :root_path, String
    const :context_provider, Packwerk::ConstantDiscovery
    const :constant_name_inspectors, T::Array[ConstantNameInspector]

    sig { params(absolute_file: String, node: AST::Node).returns(NodeProcessor) }
    def for(absolute_file:, node:)
      ::Packwerk::NodeProcessor.new(
        reference_extractor: reference_extractor(node: node),
        absolute_file: absolute_file,
      )
    end

    private

    sig { params(node: AST::Node).returns(::Packwerk::ReferenceExtractor) }
    def reference_extractor(node:)
      ::Packwerk::ReferenceExtractor.new(
        constant_name_inspectors: constant_name_inspectors,
        root_node: node,
        root_path: root_path,
      )
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
packwerk-2.2.0 lib/packwerk/node_processor_factory.rb
packwerk-2.1.1 lib/packwerk/node_processor_factory.rb