【Ruby3.x】Gem::Version::canonical_segments()メソッドの使い方
canonical_segmentsメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
canonical_segmentsメソッドは、Gem::Versionクラスのインスタンスが保持するバージョン番号を、バージョン比較に適した正規化されたセグメントの配列として取得するために使用されるメソッドです。RubyGemsでは、"1.0" や "1.0.0" といった複数の表記が、同じバージョンを指すことがあります。このメソッドは、このような異なる表記を統一的な形式に変換し、バージョン同士の正確な比較を可能にするための内部処理で重要な役割を担っています。
具体的には、バージョン文字列を数値や文字列の個々のセグメントに分解し、末尾のゼロセグメントや、「p」 (patch)、「a」 (alpha)、「b」 (beta)、「rc」 (release candidate)、「pre」 (prerelease) といった特別なプレリリース指定子を考慮して、一貫性のある配列を生成します。例えば、バージョン "1.2.0" は [1, 2] のように、また "1.2.3.beta1" は [1, 2, 3, "beta", 1] のように正規化されたセグメントの配列を返します。この正規化により、Gem::Version.new("1.2") と Gem::Version.new("1.2.0") が等しいと判断される基盤が提供されます。
このメソッドは主にGem::Versionオブジェクトの内部でバージョン比較ロジックを実装するために利用されますが、開発者が特定のバージョンの構造をプログラムで分析したり、異なるバージョンの正規化された表現を調べたい場合にも役立ちます。戻り値は、整数や文字列が混在する配列となります。
構文(syntax)
1version = Gem::Version.new('1.2.3.pre1') 2segments = version.canonical_segments
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array<Integer|String>
Gem::Version#canonical_segments は、バージョンの正規化されたセグメントを整数または文字列の配列として返します。