PHP 8.2.31
Preview: name_tuple.rb Size: 2.38 KB
//proc/thread-self/root/opt/alt/ruby33/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

  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: 71

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
core_ext DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
defaults DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
ext DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
package DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
request DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
resolver DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
security DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
source DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
ssl_certs DIR
- drwxr-xr-x 2026-04-07 13:52:12
Edit Download
util DIR
- drwxr-xr-x 2026-04-30 07:09:22
Edit Download
vendor DIR
- drwxr-xr-x 2026-04-07 13:52:11
Edit Download
3.00 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.17 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.96 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.71 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
15.97 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.64 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1022 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
15.79 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
7.35 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.45 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
9.91 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.55 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.04 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.13 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
4.53 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
7.33 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
498 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
11.17 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
394 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.89 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
27.68 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
771 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
349 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
323 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
6.39 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.61 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.38 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
125 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
18.83 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.79 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.77 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.35 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
795 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.50 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
232 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
9.38 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
8.70 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
11.29 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
7.00 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
9.44 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.96 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.92 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.04 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
21.69 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.06 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
66 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.78 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.42 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
69.10 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
15.59 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
5.21 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
6.16 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
4.96 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.06 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
10.94 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
411 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
1.85 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.38 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
784 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
13.10 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.46 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
3.63 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
81 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
233 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
79 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
111 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
228 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
73 B lrw-r--r-- 2026-04-07 13:52:24
Edit Download
12.98 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.17 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download
2.42 KB lrw-r--r-- 2026-04-07 13:52:24
Edit Download

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