PHP 8.2.31
Preview: name_tuple.rb Size: 2.39 KB
//proc/thread-self/root/opt/alt/ruby32/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="ruby")
    @name = name
    @version = version

    unless platform.kind_of? Gem::Platform
      platform = "ruby" if !platform || platform.empty?
    end

    @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 {|t| t.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, "ruby", ""
      "#{@name}-#{@version}"
    else
      "#{@name}-#{@version}-#{@platform}"
    end.dup.tap(&Gem::UNTAINT)
  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 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: 64

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
core_ext DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
defaults DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
ext DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
optparse DIR
- drwxr-xr-x 2026-04-07 14:12:46
Edit Download
package DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
request DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
resolver DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
security DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
source DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
ssl_certs DIR
- drwxr-xr-x 2026-04-07 14:12:47
Edit Download
tsort DIR
- drwxr-xr-x 2026-04-07 14:12:46
Edit Download
util DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
3.01 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
7.65 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.96 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
16.08 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.59 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.00 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
14.03 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.96 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
8.65 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.02 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.54 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
4.89 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.13 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
4.53 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
7.34 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
498 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.54 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.80 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.91 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
27.23 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
773 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
349 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
323 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.35 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.56 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.38 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.39 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
125 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
72 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
17.70 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.79 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.79 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
7.48 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
795 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
8.50 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
232 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
9.20 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
8.60 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
11.31 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.89 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
9.64 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.92 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.54 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
21.95 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.06 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
66 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.58 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.41 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
70.45 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
13.79 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.36 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
4.46 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.07 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
66 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.20 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
411 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.26 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.33 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
781 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
13.04 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.41 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.66 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
12.57 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.21 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download

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