struct

Update::Version

Inherits Comparable < Struct < Value < Object

リリースのタグが表す版。

運用しているタグは X.Y.Z と X.Y.Z-testN の 2 つだけである(PR #9、PR #11)。 それ以外の綴りは版として扱わない。手元ビルドの 0.1.0-dev がこれにあたり、 比較の対象にならないことを parse? が nil を返すことで表す。

Constants

PATTERN = /\A[vV]?(\d+)\.(\d+)\.(\d+)(?:-test(\d+))?\z/

手動で作る安定版のタグには v が付くことがあり、リリースの手順が剥がしている。 確認する側は API のタグをそのまま読むため、ここでも受け付ける。

Constructors

new(major : Int32, minor : Int32, patch : Int32, test : Int32 | Nil = nil)
Source

Class methods

parse?(text : String) : Version | Nil

数値は Int32 に収まる範囲でだけ読む。 正規表現は桁数を見ないため、設定へ手で書かれた桁あふれの綴りも一致してしまう。 to_i は範囲外で例外を投げ、設定の読み込みの外で呼ぶ経路(起動時の復元)ごと落とす。

Source

Instance methods

<=>(other : Version) : Int32

同じ X.Y.Z なら安定版のほうが新しい(SemVer のプレリリースと同じ扱い)。 0.0.2-test1 は 0.0.2 より古く、0.0.1 より新しい。

Source
major
Source
minor
Source
patch
Source
stable?
Source
test

プレリリースの番号。安定版では nil になる。

Source
to_s(io : IO) : Nil

Same as #inspect(io).

Source