Class: Dependabot::Swift::FileParser::XcodeSpmResolver
- Inherits:
-
Object
- Object
- Dependabot::Swift::FileParser::XcodeSpmResolver
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/swift/file_parser/xcode_spm_resolver.rb
Overview
Orchestrates Xcode-managed SwiftPM dependency parsing.
Parses Package.resolved JSON files found inside Xcode project and workspace directories (e.g., .xcodeproj and .xcworkspace), then enriches each dependency with requirement info extracted from the corresponding project.pbxproj files.
Instance Method Summary collapse
-
#initialize(xcode_resolved_files:, pbxproj_files:) ⇒ XcodeSpmResolver
constructor
A new instance of XcodeSpmResolver.
- #parse ⇒ Object
Constructor Details
#initialize(xcode_resolved_files:, pbxproj_files:) ⇒ XcodeSpmResolver
Returns a new instance of XcodeSpmResolver.
30 31 32 33 |
# File 'lib/dependabot/swift/file_parser/xcode_spm_resolver.rb', line 30 def initialize(xcode_resolved_files:, pbxproj_files:) @xcode_resolved_files = xcode_resolved_files @pbxproj_files = pbxproj_files end |
Instance Method Details
#parse ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dependabot/swift/file_parser/xcode_spm_resolver.rb', line 36 def parse dependency_set = Dependabot::FileParsers::Base::DependencySet.new scoped_requirements = aggregate_pbxproj_requirements xcode_resolved_files.each do |resolved_file| resolved_deps = PackageResolvedParser.new(resolved_file).parse pbxproj_requirements = requirements_for_resolved_file( scoped_requirements: scoped_requirements, resolved_file_name: resolved_file.name ) resolved_deps.each do |dep| enriched = enrich_with_pbxproj_requirements(dep, pbxproj_requirements) dependency_set << enriched end end dependency_set.dependencies end |