Class: Dependabot::Nuget::FileParser::ProjectFileParser
- Inherits:
-
Object
- Object
- Dependabot::Nuget::FileParser::ProjectFileParser
- Defined in:
- lib/dependabot/nuget/file_parser/project_file_parser.rb
Constant Summary collapse
- DEPENDENCY_SELECTOR =
"ItemGroup > PackageReference, " \ "ItemGroup > GlobalPackageReference, " \ "ItemGroup > PackageVersion, " \ "ItemGroup > Dependency, " \ "ItemGroup > DevelopmentDependency"
- PROJECT_SDK_REGEX =
%r{^([^/]+)/(\d+(?:[.]\d+(?:[.]\d+)?)?(?:[+-].*)?)$}
- PROPERTY_REGEX =
/\$\((?<property>.*?)\)/
- ITEM_REGEX =
/\@\((?<property>.*?)\)/
Instance Method Summary collapse
- #dependency_set(project_file:) ⇒ Object
-
#initialize(dependency_files:) ⇒ ProjectFileParser
constructor
A new instance of ProjectFileParser.
Constructor Details
#initialize(dependency_files:) ⇒ ProjectFileParser
Returns a new instance of ProjectFileParser.
27 28 29 |
# File 'lib/dependabot/nuget/file_parser/project_file_parser.rb', line 27 def initialize(dependency_files:) @dependency_files = dependency_files end |
Instance Method Details
#dependency_set(project_file:) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/dependabot/nuget/file_parser/project_file_parser.rb', line 31 def dependency_set(project_file:) dependency_set = Dependabot::FileParsers::Base::DependencySet.new doc = Nokogiri::XML(project_file.content) doc.remove_namespaces! # Look for regular package references doc.css(DEPENDENCY_SELECTOR).each do |dependency_node| name = dependency_name(dependency_node, project_file) req = dependency_requirement(dependency_node, project_file) version = dependency_version(dependency_node, project_file) prop_name = req_property_name(dependency_node) is_dev = dependency_node.name == "DevelopmentDependency" dependency = build_dependency(name, req, version, prop_name, project_file, dev: is_dev) dependency_set << dependency if dependency end # Look for SDK references; see: # https://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-use-project-sdk add_sdk_references(doc, dependency_set, project_file) dependency_set end |