class Gem::NameTuple - RDoc Documentation

# class Gem::NameTuple

### Attributes

name[R]
platform[R]
version[R]

### Public Class Methods

from_list(list) click to toggle source

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

    # File lib/rubygems/name_tuple.rb, line 26
    def self.from_list list
      list.map { |t| new(*t) }
    end

new(name, version, platform="ruby") click to toggle source

    # File lib/rubygems/name_tuple.rb, line 9
    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

null() click to toggle source

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

    # File lib/rubygems/name_tuple.rb, line 41
    def self.null
      new nil, Gem::Version.new(0), nil
    end

to_basic(list) click to toggle source

Turn an array of NameTuple objects back into an array of

name, version, platform

  tuples.

    # File lib/rubygems/name_tuple.rb, line 34
    def self.to_basic list
      list.map { |t| t.to_a }
    end

### Public Instance Methods

<=>(other) click to toggle source

    # File lib/rubygems/name_tuple.rb, line 92
    def <=> other
      [@name, @version, @platform == Gem::Platform::RUBY ? -1 : 1] <=>
        [other.name, other.version,
         other.platform == Gem::Platform::RUBY ? -1 : 1]
    end

==(other) click to toggle source

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

    # File lib/rubygems/name_tuple.rb, line 104
    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

Also aliased as: eql?
eql?(other)
Alias for: ==
full_name() click to toggle source

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.

    # File lib/rubygems/name_tuple.rb, line 50
    def full_name
      case @platform
      when nil, 'ruby', ''
        "#{@name}-#{@version}"
      else
        "#{@name}-#{@version}-#{@platform}"
      end.dup.untaint
    end

hash() click to toggle source

    # File lib/rubygems/name_tuple.rb, line 119
    def hash
      to_a.hash
    end

match_platform?() click to toggle source

Indicate if this NameTuple matches the current platform.

    # File lib/rubygems/name_tuple.rb, line 62
    def match_platform?
      Gem::Platform.match @platform
    end

prerelease?() click to toggle source

Indicate if this NameTuple is for a prerelease version.

    # File lib/rubygems/name_tuple.rb, line 68
    def prerelease?
      @version.prerelease?
    end

spec_name() click to toggle source

Return the name that the gemspec file would be

    # File lib/rubygems/name_tuple.rb, line 75
    def spec_name
      "#{full_name}.gemspec"
    end

to_a() click to toggle source

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

    # File lib/rubygems/name_tuple.rb, line 82
    def to_a
      [@name, @version, @platform]
    end