PHP 8.2.31
Preview: name_tuple.rb Size: 2.52 KB
//proc/thread-self/root/opt/alt/ruby40/share/rubygems/rubygems/name_tuple.rb

# frozen_string_literal: true

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

class Gem::NameTuple
  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

  attr_reader :name, :version, :platform

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

  def self.from_list(list)
    list.map {|t| new(*t) }
  end

  ##
  # Turn an array of NameTuple objects back into an array of
  # [name, version, platform] tuples.

  def self.to_basic(list)
    list.map(&:to_a)
  end

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

  def self.null
    new nil, Gem::Version.new(0), nil
  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.

  def full_name
    case @platform
    when nil, "", Gem::Platform::RUBY
      "#{@name}-#{@version}"
    else
      "#{@name}-#{@version}-#{@platform}"
    end
  end

  ##
  # Indicate if this NameTuple matches the current platform.

  def match_platform?
    Gem::Platform.match_gem? @platform, @name
  end

  ##
  # Indicate if this NameTuple is for a prerelease version.
  def prerelease?
    @version.prerelease?
  end

  ##
  # Return the name that the gemspec file would be

  def spec_name
    "#{full_name}.gemspec"
  end

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

  def to_a
    [@name, @version, @platform]
  end

  alias_method :deconstruct, :to_a

  def deconstruct_keys(keys)
    { name: @name, version: @version, platform: @platform }
  end

  def inspect # :nodoc:
    "#<Gem::NameTuple #{@name}, #{@version}, #{@platform}>"
  end

  alias_method :to_s, :inspect # :nodoc:

  def <=>(other)
    [@name, @version, Gem::Platform.sort_priority(@platform)] <=>
      [other.name, other.version, Gem::Platform.sort_priority(other.platform)]
  end

  include Comparable

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

  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

  alias_method :eql?, :==

  def hash
    to_a.hash
  end
end

Directory Contents

Dirs: 15 × Files: 70

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
core_ext DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
defaults DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
ext DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
package DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
request DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
resolver DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
security DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
source DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
ssl_certs DIR
- drwxr-xr-x 2026-05-21 12:15:17
Edit Download
util DIR
- drwxr-xr-x 2026-06-09 07:03:28
Edit Download
vendor DIR
- drwxr-xr-x 2026-05-21 12:15:16
Edit Download
3.00 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
8.21 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.39 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.71 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
15.80 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
5.64 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
16.31 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
7.40 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
8.45 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
7.79 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
5.52 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
5.26 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.13 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
4.53 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
6.87 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
498 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
11.38 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
394 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.11 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
27.11 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
771 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
323 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
6.96 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.59 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.52 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
125 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
19.51 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.79 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
1.77 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
12.52 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
874 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
8.50 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
660 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
9.52 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
8.73 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
11.26 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
7.13 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
9.43 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
7.40 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
1.92 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
1.04 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
21.69 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
1.06 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
5.97 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.24 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
67.53 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
14.64 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
5.62 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
7.69 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
5.00 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
1.24 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.07 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
12.07 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
411 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
1.85 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.38 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
846 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
13.06 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.05 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
3.63 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
81 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
233 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
79 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
87 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
228 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
73 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
13.67 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.17 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download
519 B lrw-r--r-- 2026-05-21 12:15:20
Edit Download
2.42 KB lrw-r--r-- 2026-05-21 12:15:20
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).