# 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)
Source

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

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

new (name, version, platform=Gem::Platform::RUBY)
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 ()
Source

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

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

to_basic (list)
Source

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

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

name, version, platform

  tuples.

### Public Instance Methods

<=> (other)
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)
Source

    # 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

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

Also aliased as: eql?
eql? (other)
Alias for: ==
full_name ()
Source

    # 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

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`.

hash ()
Source

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

match_platform? ()
Source

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

Indicate if this `NameTuple` matches the current platform.

prerelease? ()
Source

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

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

spec_name ()
Source

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

Return the name that the gemspec file would be

to_a ()
Source

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

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