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
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.
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 = Gem::Platform.new(platform.to_s) @original_platform = platform.to_s @spec = nil end
Public Instance Methods
# File lib/rubygems/resolver/index_specification.rb, line 58 def ==(other) self.class === other && @name == other.name && @version == other.version && @platform == other.platform end
The dependencies of the gem for this specification
# File lib/rubygems/resolver/index_specification.rb, line 33 def dependencies spec.dependencies end
# File lib/rubygems/resolver/index_specification.rb, line 65 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 lib/rubygems/resolver/index_specification.rb, line 43 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 lib/rubygems/resolver/index_specification.rb, line 54 def required_rubygems_version spec.required_rubygems_version || Gem::Requirement.default end