In Files

  • ruby-3.1.2/lib/rubygems/resolver/index_specification.rb

Files

Class/Module Index [+]

Quicksearch

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.

 
               # File ruby-3.1.2/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 ruby-3.1.2/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 ruby-3.1.2/lib/rubygems/resolver/index_specification.rb, line 32
def dependencies
  spec.dependencies
end
            
hash() click to toggle source
 
               # File ruby-3.1.2/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 ruby-3.1.2/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 ruby-3.1.2/lib/rubygems/resolver/index_specification.rb, line 53
def required_rubygems_version
  spec.required_rubygems_version || Gem::Requirement.default
end