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
Source
# File 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
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
Public Instance Methods
Source
# File lib/rubygems/resolver/index_specification.rb, line 59 def ==(other) self.class === other && @name == other.name && @version == other.version && @platform == other.platform end
Source
# File lib/rubygems/resolver/index_specification.rb, line 34 def dependencies spec.dependencies end
The dependencies of the gem for this specification
Source
# File lib/rubygems/resolver/index_specification.rb, line 66 def hash @name.hash ^ @version.hash ^ @platform.hash end
Source
# File lib/rubygems/resolver/index_specification.rb, line 44 def required_ruby_version spec.required_ruby_version || Gem::Requirement.default end
The required_ruby_version
constraint for this specification
A fallback is included because when generated, some marshalled specs have it set to nil
.
Source
# File lib/rubygems/resolver/index_specification.rb, line 55 def required_rubygems_version spec.required_rubygems_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
.