class Dependabot::Ecosystem::VersionManager
def deprecated?
def deprecated? return false unless detected_version # If the version is unsupported, the unsupported error is getting raised separately. return false if unsupported? deprecated_versions.include?(detected_version) end
def initialize(
def initialize( name:, detected_version: nil, version: nil, deprecated_versions: [], supported_versions: [], requirement: nil ) @name = T.let(name, String) @detected_version = T.let(detected_version || version, T.nilable(Dependabot::Version)) @version = T.let(version, T.nilable(Dependabot::Version)) @deprecated_versions = T.let(deprecated_versions, T::Array[Dependabot::Version]) @supported_versions = T.let(supported_versions, T::Array[Dependabot::Version]) @requirement = T.let(requirement, T.nilable(Dependabot::Requirement)) end
def raise_if_unsupported!
def raise_if_unsupported! return unless detected_version return unless unsupported? # Example: v2.*, v3.* supported_versions_message = supported_versions.map { |v| "v#{v}.*" }.join(", ") raise ToolVersionNotSupported.new( name, detected_version.to_s, supported_versions_message ) end
def support_later_versions?
def support_later_versions? false end
def unsupported?
def unsupported? return false unless detected_version return false if supported_versions.empty? # Check if the version is not supported supported_versions.all? { |supported| supported > detected_version } end
def version_to_raw_s
def version_to_raw_s version&.to_semver.to_s end
def version_to_s
def version_to_s version.to_s end