class Dependabot::Gradle::UpdateChecker::RequirementsUpdater
Attributes
latest_version[R]
properties_to_update[R]
requirements[R]
source_url[R]
Public Class Methods
new(requirements:, latest_version:, source_url:, properties_to_update:)
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 16 def initialize(requirements:, latest_version:, source_url:, properties_to_update:) @requirements = requirements @source_url = source_url @properties_to_update = properties_to_update return unless latest_version @latest_version = version_class.new(latest_version) end
Public Instance Methods
updated_requirements()
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 26 def updated_requirements return requirements unless latest_version # NOTE: Order is important here. The FileUpdater needs the updated # requirement at index `i` to correspond to the previous requirement # at the same index. requirements.map do |req| next req if req.fetch(:requirement).nil? next req if req.fetch(:requirement).include?(",") property_name = req.dig(:metadata, :property_name) next req if property_name && !properties_to_update.include?(property_name) new_req = update_requirement(req[:requirement]) req.merge(requirement: new_req, source: updated_source) end end
Private Instance Methods
requirement_class()
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 83 def requirement_class Gradle::Requirement end
update_dynamic_requirement(req_string)
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 64 def update_dynamic_requirement(req_string) version = req_string.split(/\.?\+/).first || "+" precision = version.split("."). take_while { |s| !s.include?("+") }.count version_parts = latest_version.segments.first(precision) if req_string.end_with?(".+") version_parts.join(".") + ".+" else version_parts.join(".") + "+" end end
update_exact_requirement(req_string)
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 58 def update_exact_requirement(req_string) old_version = requirement_class.new(req_string). requirements.first.last req_string.gsub(old_version.to_s, latest_version.to_s) end
update_requirement(req_string)
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 49 def update_requirement(req_string) if req_string.include?("+") update_dynamic_requirement(req_string) else # Since range requirements are excluded this must be exact update_exact_requirement(req_string) end end
updated_source()
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 87 def updated_source { type: "maven_repo", url: source_url } end
version_class()
click to toggle source
# File lib/dependabot/gradle/update_checker/requirements_updater.rb, line 79 def version_class Gradle::Version end