Module: Fontisan::Cldr::VersionResolver

Defined in:
lib/fontisan/cldr/version_resolver.rb

Overview

Resolves a user-supplied version intent to a concrete CLDR version.

Three input modes:

resolve(nil)           # default_version from config
resolve(:default)      # default_version from config
resolve("46.0.0")      # explicit; validated against known_versions
resolve(:latest)       # probes GitHub releases, picks highest;
                     # falls back to default on failure

Class Method Summary collapse

Class Method Details

.resolve(intent) ⇒ String

Returns a concrete version string.

Parameters:

  • intent (nil, :default, :latest, String)

Returns:

  • (String)

    a concrete version string



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/fontisan/cldr/version_resolver.rb', line 26

def resolve(intent)
  case intent
  when nil, :default
    Config.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.

Parameters:

  • version (String)

Raises:



41
42
43
44
45
46
47
# File 'lib/fontisan/cldr/version_resolver.rb', line 41

def validate!(version)
  return if Config.known?(version)

  raise UnknownVersionError,
        "CLDR version #{version.inspect} is not recognized. " \
        "Known versions: #{Config.known_versions.join(', ')}"
end