Turn an array of [name, version, platform] into an array of NameTuple objects.
# File rubygems/name_tuple.rb, line 26
def self.from_list list
list.map { |t| new(*t) }
end
# File rubygems/name_tuple.rb, line 9
def initialize(name, version, platform="ruby")
@name = name
@version = version
unless platform.kind_of? Gem::Platform
platform = "ruby" if !platform or platform.empty?
end
@platform = platform
end
A null NameTuple, ie name=nil, version=0
# File rubygems/name_tuple.rb, line 41
def self.null
new nil, Gem::Version.new(0), nil
end
Turn an array of NameTuple objects back into an array of
tuples.
# File rubygems/name_tuple.rb, line 34
def self.to_basic list
list.map { |t| t.to_a }
end
# File rubygems/name_tuple.rb, line 92
def <=> other
[@name, @version, @platform == Gem::Platform::RUBY ? -1 : 1] <=>
[other.name, other.version,
other.platform == Gem::Platform::RUBY ? -1 : 1]
end
Compare with other. Supports another NameTuple or an Array in the [name, version,
platform] format.
# File rubygems/name_tuple.rb, line 104
def == other
case other
when self.class
@name == other.name and
@version == other.version and
@platform == other.platform
when Array
to_a == other
else
false
end
end
Returns the full name (name-version) of this Gem. Platform information is included if it is not the default Ruby platform. This mimics the behavior of Gem::Specification#full_name.
# File rubygems/name_tuple.rb, line 50
def full_name
case @platform
when nil, 'ruby', ''
"#{@name}-#{@version}"
else
"#{@name}-#{@version}-#{@platform}"
end.untaint
end
Indicate if this NameTuple matches the current platform.
# File rubygems/name_tuple.rb, line 62
def match_platform?
Gem::Platform.match @platform
end
Indicate if this NameTuple is for a prerelease version.
# File rubygems/name_tuple.rb, line 68
def prerelease?
@version.prerelease?
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.