/usr/share/rubygems/rubygems
# 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 or 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, @platform == Gem::Platform::RUBY ? -1 : 1] <=> [other.name, other.version, other.platform == Gem::Platform::RUBY ? -1 : 1] 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 and @version == other.version and @platform == other.platform when Array to_a == other else false end end alias_method :eql?, :== def hash to_a.hash end end
.
Edit
..
Edit
available_set.rb
Edit
basic_specification.rb
Edit
bundler_version_finder.rb
Edit
command.rb
Edit
command_manager.rb
Edit
commands
Edit
compatibility.rb
Edit
config_file.rb
Edit
core_ext
Edit
defaults
Edit
defaults.rb
Edit
dependency.rb
Edit
dependency_installer.rb
Edit
dependency_list.rb
Edit
deprecate.rb
Edit
doctor.rb
Edit
errors.rb
Edit
exceptions.rb
Edit
ext
Edit
ext.rb
Edit
gem_runner.rb
Edit
gemcutter_utilities.rb
Edit
indexer.rb
Edit
install_default_message.rb
Edit
install_message.rb
Edit
install_update_options.rb
Edit
installer.rb
Edit
installer_uninstaller_utils.rb
Edit
local_remote_options.rb
Edit
mock_gem_ui.rb
Edit
name_tuple.rb
Edit
openssl.rb
Edit
optparse
Edit
optparse.rb
Edit
package
Edit
package.rb
Edit
package_task.rb
Edit
path_support.rb
Edit
platform.rb
Edit
psych_additions.rb
Edit
psych_tree.rb
Edit
query_utils.rb
Edit
rdoc.rb
Edit
remote_fetcher.rb
Edit
request
Edit
request.rb
Edit
request_set
Edit
request_set.rb
Edit
requirement.rb
Edit
resolver
Edit
resolver.rb
Edit
s3_uri_signer.rb
Edit
safe_yaml.rb
Edit
security
Edit
security.rb
Edit
security_option.rb
Edit
server.rb
Edit
source
Edit
source.rb
Edit
source_list.rb
Edit
spec_fetcher.rb
Edit
specification.rb
Edit
specification_policy.rb
Edit
ssl_certs
Edit
stub_specification.rb
Edit
text.rb
Edit
tsort
Edit
tsort.rb
Edit
uninstaller.rb
Edit
uri.rb
Edit
uri_formatter.rb
Edit
user_interaction.rb
Edit
util
Edit
util.rb
Edit
validator.rb
Edit
version.rb
Edit
version_option.rb
Edit