class Gem::NameTuple - Documentation for Ruby 3.3

# class Gem::NameTuple

Represents a gem of name `name` at `version` of `platform`. These wrap the data returned from the indexes.

### Attributes

name[R]
platform[R]
version[R]

### Public Class Methods

from_list(list) click to toggle source

Turn an array of [name, version, platform] into an array of `NameTuple` objects.

    # File lib/rubygems/name_tuple.rb, line 24
    def self.from_list(list)
      list.map {|t| new(*t) }
    end

new(name, version, platform=Gem::Platform::RUBY) click to toggle source

    # File lib/rubygems/name_tuple.rb, line 9
    def initialize(name, version, platform=Gem::Platform::RUBY)
      @name = name
      @version = version

      platform &&= platform.to_s
      platform = Gem::Platform::RUBY if !platform || platform.empty?
      @platform = platform
    end

null() click to toggle source

A null `NameTuple`, ie name=nil, version=0

    # File lib/rubygems/name_tuple.rb, line 39
    def self.null
      new nil, Gem::Version.new(0), nil
    end

to_basic(list) click to toggle source

Turn an array of `NameTuple` objects back into an array of

name, version, platform

  tuples.

    # File lib/rubygems/name_tuple.rb, line 32
    def self.to_basic(list)
      list.map(&:to_a)
    end

### Public Instance Methods

<=>(other) click to toggle source

    # File lib/rubygems/name_tuple.rb, line 90
    def <=>(other)
      [@name, @version, Gem::Platform.sort_priority(@platform)] <=>
        [other.name, other.version, Gem::Platform.sort_priority(other.platform)]
    end

==(other) click to toggle source

Compare with `other`. Supports another `NameTuple` or an `Array` in the [name, version, platform] format.

    # File lib/rubygems/name_tuple.rb, line 101
    def ==(other)
      case other
      when self.class
        @name == other.name &&
          @version == other.version &&
          @platform == other.platform
      when Array
        to_a == other
      else
        false
      end
    end

Also aliased as: eql?
eql?(other)
Alias for: ==
full_name() click to toggle source

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 lib/rubygems/name_tuple.rb, line 48
    def full_name
      case @platform
      when nil, "", Gem::Platform::RUBY
        "#{@name}-#{@version}"
      else
        "#{@name}-#{@version}-#{@platform}"
      end
    end

hash() click to toggle source

    # File lib/rubygems/name_tuple.rb, line 116
    def hash
      to_a.hash
    end

match_platform?() click to toggle source

Indicate if this `NameTuple` matches the current platform.

    # File lib/rubygems/name_tuple.rb, line 60
    def match_platform?
      Gem::Platform.match_gem? @platform, @name
    end

prerelease?() click to toggle source

Indicate if this `NameTuple` is for a prerelease version.

    # File lib/rubygems/name_tuple.rb, line 66
    def prerelease?
      @version.prerelease?
    end

spec_name() click to toggle source

Return the name that the gemspec file would be

    # File lib/rubygems/name_tuple.rb, line 73
    def spec_name
      "#{full_name}.gemspec"
    end

to_a() click to toggle source

Convert back to the [name, version, platform] tuple

    # File lib/rubygems/name_tuple.rb, line 80
    def to_a
      [@name, @version, @platform]
    end