# 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) click to toggle source

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`

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

      @set = set
      @name = name
      @version = version
      @source = source
      @platform = platform.to_s

      @spec = nil
    end

### Public Instance Methods

==(other) click to toggle source

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

dependencies() click to toggle source

The dependencies of the gem for this specification

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

hash() click to toggle source

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

required_ruby_version() click to toggle source

The `required_ruby_version` constraint for this specification

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

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

required_rubygems_version() click to toggle source

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`.

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