Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > rubygems/versionライブラリ > Gem::Versionクラス
クラス・モジュールの継承リスト: Gem::Version < Comparable < Object < Kernel < BasicObject
文字列で表現されたバージョンを比較可能 (Comparable) にするためのクラスです。
バージョンを文字列で表したとき、単純に String#<=> で比較すると、 "1.9" のほうが "1.10" よりも大きい(バージョンが高い)ことになってしまい、正しく判定できません。 Gem::Version はこの問題を解決します。
p "1.9" < "1.10" # => false
p Gem::Version.new("1.9") < Gem::Version.new("1.10") # => true
gem のバージョンを取り扱うためのクラスですが、バージョン表記が RubyGems の流儀に則っていれば RubyGems とは無関係に使うこともできます。
versions = %w[ 1.1 1.10 1.9 1.1.beta9 1.1.beta10 ]
p versions.sort_by{ |v| Gem::Version.new(v) }
# => ["1.1.beta9", "1.1.beta10", "1.1", "1.9", "1.10"]
上の例で、"1.9" と "1.10" では(数字列ではなく)整数として 9 より 10 が大きいので、"1.10" のほうが大きいと判定されています。
また、"1.1.beta9" は "beta9" の部分が数字でないものを含んでいるので "1.1" の「プレリリース」バージョンであるとみなされます。この規則により、"1.1" と "1.1.beta9" では後者のほうが小さいと判定されています。
"1.1.beta9" と "1.1.beta10" では、"beta9" と "beta10" の部分だけが違いますが、アルファベット部分と数字部分が分割され、数字部分は整数の大小比較になるため、後者のほうが大きいと判定されます。
定義 | 説明 | |
---|---|---|
correct?(version) -> 0 | nil
|
version が正しいバージョンであれば 0 を返します。そうでなければ nil を返します。 |
|
create(input) -> Gem::Version | nil
|
Gem::Version のインスタンスを作成するためのファクトリメソッドです。 |
|
new(version) -> Gem::Version
|
バージョンを表す文字列から、Gem::Version インスタンスを作成します。 |
定義 | 説明 | |
---|---|---|
self <=> other -> -1 | 0 | 1 | nil
|
self と other を比較して、self が小さい時に -1、等しい時に 0、大きい時に 1 の整数を返します。また、other が Gem::Version ではなく比較できないとき、 nil を返します。 |
|
bump -> Gem::Version
|
最後の一桁を切り上げた新しい Gem::Version のインスタンスを返します。 |
|
eql?(other) -> bool
|
self と other の Gem::Version#version のバージョンが等しいとき true を返します。そうでなければ false を返します。 |
|
marshal_dump -> Array
|
完全なオブジェクトではなく、バージョン文字列のみダンプします。 |
|
marshal_load(array) -> nil
|
ダンプされた情報をロードし、自身を破壊的に変更します。 |
|
prerelease? -> bool
|
self がプレリリースと思われる文字を含むバージョンかどうかを返します。 |
|
release -> Gem::Version
|
self をリリースバージョンにした Gem::Version オブジェクトを返します。 |
|
version -> String
|
バージョン情報を文字列として返します。 |
定義 | 説明 | |
---|---|---|
Requirement -> Class
|
Gem::Requirement のエイリアスです。 |
!
!=
__id__
__send__
instance_eval
instance_exec
method_missing
singleton_method_added
singleton_method_removed
singleton_method_undefined
<
<=
==
>
>=
between?
!~
===
=~
_dump
class
clone
define_singleton_method
display
enum_for
equal?
extend
freeze
frozen?
hash
initialize
initialize_copy
inspect
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
itself
method
methods
nil?
object_id
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
psych_to_yaml
public_method
public_methods
public_send
remove_instance_variable
respond_to?
respond_to_missing?
send
singleton_class
singleton_method
singleton_methods
taint
tainted?
tap
to_a
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_str
trust
untaint
untrust
untrusted?
.yaml_tag
::ARGF
::ARGV
::DATA
::ENV
::FALSE
::NIL
::RUBY_COPYRIGHT
::RUBY_DESCRIPTION
::RUBY_ENGINE
::RUBY_PATCHLEVEL
::RUBY_PLATFORM
::RUBY_RELEASE_DATE
::RUBY_REVISION
::RUBY_VERSION
::SCRIPT_LINES__
::STDERR
::STDIN
::STDOUT
::TOPLEVEL_BINDING
::TRUE