Module: Ucode::VersionResolver
- Defined in:
- lib/ucode/version_resolver.rb
Overview
Resolves a user-supplied version intent to a concrete version string.
Three input modes:
resolve(nil) # default_version from config
resolve(:default) # default_version from config
resolve(:latest) # probes listing_url, picks highest; falls
# back to default on failure
resolve("17.0.0") # explicit; validated against known_versions
Class Method Summary collapse
- .resolve(intent) ⇒ String
-
.validate!(version) ⇒ void
Raise UnknownVersionError unless ‘version` is in known_versions.
Class Method Details
.resolve(intent) ⇒ String
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ucode/version_resolver.rb', line 22 def resolve(intent) case intent when nil, :default Ucode.configuration.default_version when :latest probe_latest else validate!(intent) intent end end |
.validate!(version) ⇒ void
This method returns an undefined value.
Raise UnknownVersionError unless ‘version` is in known_versions.
37 38 39 40 41 42 43 44 45 |
# File 'lib/ucode/version_resolver.rb', line 37 def validate!(version) return if Ucode.configuration.known?(version) raise Ucode::UnknownVersionError.new( "UCD version #{version.inspect} is not recognized.", context: { version: version, known: Ucode.configuration.known_versions }, ) end |