Skip to Content Skip to Search

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.

Methods
#
D
H
N
R

Class Public methods

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

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/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

Instance Public methods

==(other)

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

dependencies()

The dependencies of the gem for this specification

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

hash()

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

required_ruby_version()

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/lib/rubygems/resolver/index_specification.rb, line 44
def required_ruby_version
  spec.required_ruby_version || Gem::Requirement.default
end

required_rubygems_version()

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/lib/rubygems/resolver/index_specification.rb, line 55
def required_rubygems_version
  spec.required_rubygems_version || Gem::Requirement.default
end