Module: Hatchet::EngineVersion
- Defined in:
- lib/hatchet/engine_version.rb,
sig/hatchet/engine_version.rbs
Overview
Semver parsing + comparison helpers used to gate features by engine version.
Class Method Summary collapse
-
.parse_semver(version) ⇒ Array(Integer, Integer, Integer)
Parse a semver string like
"v0.78.23"into[major, minor, patch]. -
.semver_less_than?(left_version, right_version) ⇒ Boolean
(also: semver_less_than)
True if semver
left_versionis strictly less thanright_version.
Class Method Details
.parse_semver(version) ⇒ Array(Integer, Integer, Integer)
Parse a semver string like "v0.78.23" into [major, minor, patch].
Returns [0, 0, 0] if parsing fails, matching the Python helper.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/hatchet/engine_version.rb', line 24 def parse_semver(version) return [0, 0, 0] if version.nil? v = version.to_s v = v.sub(/\Av/, "") v = v.split("-", 2).first || "" parts = v.split(".") return [0, 0, 0] if parts.length != 3 [Integer(parts[0]), Integer(parts[1]), Integer(parts[2])] rescue ArgumentError, TypeError [0, 0, 0] end |
.semver_less_than?(left_version, right_version) ⇒ Boolean Also known as: semver_less_than
Returns true if semver left_version is strictly less than right_version.
42 43 44 |
# File 'lib/hatchet/engine_version.rb', line 42 def semver_less_than?(left_version, right_version) (parse_semver(left_version) <=> parse_semver(right_version)).negative? end |