Module: Hatchet::EngineVersion
- Defined in:
- lib/hatchet/engine_version.rb
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_version“ is strictly less than “right_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 |