frozen_string_literal: true
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.
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 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
# File rubygems/resolver/index_specification.rb, line 57 def ==(other) self.class === other && @name == other.name && @version == other.version && @platform == other.platform end
The dependencies of the gem for this specification
# File rubygems/resolver/index_specification.rb, line 32 def dependencies spec.dependencies end
# File rubygems/resolver/index_specification.rb, line 64 def hash @name.hash ^ @version.hash ^ @platform.hash end
The #required_ruby_version constraint for this specification
A fallback is included because when generated, some marshalled specs have
it set to nil
.
# File rubygems/resolver/index_specification.rb, line 42 def required_ruby_version spec.required_ruby_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
.
# File rubygems/resolver/index_specification.rb, line 53 def required_rubygems_version spec.required_rubygems_version || Gem::Requirement.default end