Class: Gem::Resolver::IndexSpecification
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Specification
|
|
|
Instance Chain:
self,
Specification
|
|
| Inherits: |
Gem::Resolver::Specification
|
| Defined in: | lib/rubygems/resolver/index_specification.rb |
Overview
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.
Class Method Summary
-
.new(set, name, version, source, platform) ⇒ IndexSpecification
constructor
An IndexSpecification is created from the index format described in ‘gem help generate_index`.
Specification - Inherited
| .new | Sets default instance variables for the specification. |
Instance Attribute Summary
Specification - Inherited
| #dependencies | The dependencies of the gem for this specification. |
| #installable_platform? | Returns true if this specification is installable on this platform. |
| #name | The name of the gem for this specification. |
| #platform | The platform this gem works on. |
| #required_ruby_version | The required_ruby_version constraint for this specification. |
| #required_rubygems_version | The required_ruby_version constraint for this specification. |
| #set | The set this specification came from. |
| #source | The source for this specification. |
| #spec | The |
| #version | The version of the gem for this specification. |
| #local? | |
Instance Method Summary
- #==(other)
-
#dependencies
The dependencies of the gem for this specification.
- #hash
-
#required_ruby_version
The required_ruby_version constraint for this specification.
-
#required_rubygems_version
The required_rubygems_version constraint for this specification.
- #inspect Internal use only
- #pretty_print(q) Internal use only
-
#spec
Internal use only
Fetches a
::Gem::Specificationfor thisIndexSpecificationfrom the#source.
Specification - Inherited
| #download, | |
| #full_name | The name and version of the specification. |
| #install | Installs this specification using the |
| #fetch_development_dependencies | Fetches development dependencies if the source does not provide them by default (see |
Constructor Details
.new(set, name, version, source, platform) ⇒ IndexSpecification
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.
Instance Method Details
#==(other)
[ GitHub ]# File '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 'lib/rubygems/resolver/index_specification.rb', line 34
def dependencies spec.dependencies end
#hash
[ GitHub ]# File 'lib/rubygems/resolver/index_specification.rb', line 66
def hash @name.hash ^ @version.hash ^ @platform.hash end
#inspect
# File 'lib/rubygems/resolver/index_specification.rb', line 70
def inspect # :nodoc: format("#<%s %s source %s>", self.class, full_name, @source) end
#pretty_print(q)
#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 '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 'lib/rubygems/resolver/index_specification.rb', line 55
def required_rubygems_version spec.required_rubygems_version || Gem::Requirement.default end
#spec
Fetches a ::Gem::Specification for this IndexSpecification from the #source.