class Gem::Resolver::IndexSpecification - Documentation for Ruby 4.0
Description: class Gem::Resolver::IndexSpecification: Represents a possible Specification object returned from IndexSet. Used to delay needed to download full Specification objects when only the +name+ an
Keywords: ruby,class,Gem::Resolver::IndexSpecification

🔍

No recent searches

# class Gem::Resolver::IndexSpecification

Represents a possible Specification object returned from IndexSet. Used to delay needed to download full Specification objects when only the `name` and `version` are needed.

### Public Class Methods

new (set, name, version, source, platform)
Source

    # File lib/rubygems/resolver/index_specification.rb, line 18
    def initialize(set, name, version, source, platform)
      super()

      @set = set
      @name = name
      @version = version
      @source = source
      @platform = Gem::Platform.new(platform.to_s)
      @original_platform = platform.to_s

      @spec = nil
    end

An `IndexSpecification` is created from the index format described in ‘gem help generate_index`.

The `set` contains other specifications for this (URL) `source`.

The `name`, `version` and `platform` are the name, version and platform of the gem.

Calls superclass method `Gem::Resolver::Specification::new`

### Public Instance Methods

== (other)
Source

    # File lib/rubygems/resolver/index_specification.rb, line 59
    def ==(other)
      self.class === other &&
        @name == other.name &&
        @version == other.version &&
        @platform == other.platform
    end

dependencies ()
Source

    # File lib/rubygems/resolver/index_specification.rb, line 34
    def dependencies
      spec.dependencies
    end

The dependencies of the gem for this specification

hash ()
Source

    # File lib/rubygems/resolver/index_specification.rb, line 66
    def hash
      @name.hash ^ @version.hash ^ @platform.hash
    end

required_ruby_version ()
Source

    # File lib/rubygems/resolver/index_specification.rb, line 44
    def required_ruby_version
      spec.required_ruby_version || Gem::Requirement.default
    end

The `required_ruby_version` constraint for this specification

A fallback is included because when generated, some marshalled specs have it set to `nil`.

required_rubygems_version ()
Source

    # File lib/rubygems/resolver/index_specification.rb, line 55
    def required_rubygems_version
      spec.required_rubygems_version || Gem::Requirement.default
    end

The `required_rubygems_version` constraint for this specification

A fallback is included because the original version of the specification API didn’t include that field, so some marshalled specs in the index have it set to `nil`.