class Gem::NameTuple - Documentation for Ruby 4.0
Description: class Gem::NameTuple: Represents a gem of name +name+ at +version+ of +platform+. These wrap the data returned from the indexes.
Keywords: ruby,class,Gem::NameTuple

🔍

No recent searches

# 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 96
    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 107
    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?
deconstruct ()
Alias for: to_a
deconstruct_keys (keys)
Source

    # File lib/rubygems/name_tuple.rb, line 86
    def deconstruct_keys(keys)
      { name: @name, version: @version, platform: @platform }
    end

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 122
    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

Also aliased as: deconstruct