Class: Ukiryu::VersionSchemeResolver
- Inherits:
-
Object
- Object
- Ukiryu::VersionSchemeResolver
- Defined in:
- lib/ukiryu/version_scheme_resolver.rb
Overview
Resolves version scheme specifications to Versionian scheme objects.
Schemes are defined inline in implementation YAML files in the register. This resolver handles two modes:
-
Reference to Versionian built-in schemes (semantic, calver, etc.)
-
Inline declarative scheme definitions (Hash)
Class Method Summary collapse
-
.inline?(scheme_spec) ⇒ Boolean
Check if a scheme spec is inline (Hash) or reference (String/Symbol).
-
.reference?(scheme_spec) ⇒ Boolean
Check if a scheme spec is a reference (String/Symbol).
-
.resolve(scheme_spec) ⇒ Versionian::VersionScheme
Resolve a scheme specification to a Versionian VersionScheme object.
Class Method Details
.inline?(scheme_spec) ⇒ Boolean
Check if a scheme spec is inline (Hash) or reference (String/Symbol)
40 41 42 |
# File 'lib/ukiryu/version_scheme_resolver.rb', line 40 def inline?(scheme_spec) scheme_spec.is_a?(Hash) end |
.reference?(scheme_spec) ⇒ Boolean
Check if a scheme spec is a reference (String/Symbol)
48 49 50 |
# File 'lib/ukiryu/version_scheme_resolver.rb', line 48 def reference?(scheme_spec) scheme_spec.is_a?(String) || scheme_spec.is_a?(Symbol) end |
.resolve(scheme_spec) ⇒ Versionian::VersionScheme
Resolve a scheme specification to a Versionian VersionScheme object.
26 27 28 29 30 31 32 33 34 |
# File 'lib/ukiryu/version_scheme_resolver.rb', line 26 def resolve(scheme_spec) if scheme_spec.is_a?(Hash) load_inline_scheme(scheme_spec) elsif scheme_spec.is_a?(String) || scheme_spec.is_a?(Symbol) load_builtin_scheme(scheme_spec) else raise ArgumentError, "Invalid scheme specification: #{scheme_spec.inspect}" end end |