Class: Gem::Resolver::IndexSpecification
- Inherits:
-
Specification
- Object
- Specification
- Gem::Resolver::IndexSpecification
- 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.
Instance Attribute Summary
Attributes inherited from Specification
#name, #platform, #set, #source, #version
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#dependencies ⇒ Object
The dependencies of the gem for this specification.
- #hash ⇒ Object
-
#initialize(set, name, version, source, platform) ⇒ IndexSpecification
constructor
An IndexSpecification is created from the index format described in ‘gem help generate_index`.
-
#inspect ⇒ Object
:nodoc:.
-
#pretty_print(q) ⇒ Object
:nodoc:.
-
#required_ruby_version ⇒ Object
The required_ruby_version constraint for this specification.
-
#required_rubygems_version ⇒ Object
The required_rubygems_version constraint for this specification.
-
#spec ⇒ Object
Fetches a Gem::Specification for this IndexSpecification from the #source.
Methods inherited from Specification
#download, #fetch_development_dependencies, #full_name, #install, #installable_platform?, #local?
Constructor Details
#initialize(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.
17 18 19 20 21 22 23 24 25 26 27 |
# 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 = platform.to_s @spec = nil end |
Instance Method Details
#==(other) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/rubygems/resolver/index_specification.rb', line 51 def ==(other) self.class === other && @name == other.name && @version == other.version && @platform == other.platform end |
#dependencies ⇒ Object
The dependencies of the gem for this specification
32 33 34 |
# File 'lib/rubygems/resolver/index_specification.rb', line 32 def dependencies spec.dependencies end |
#hash ⇒ Object
58 59 60 |
# File 'lib/rubygems/resolver/index_specification.rb', line 58 def hash @name.hash ^ @version.hash ^ @platform.hash end |
#inspect ⇒ Object
:nodoc:
62 63 64 |
# File 'lib/rubygems/resolver/index_specification.rb', line 62 def inspect # :nodoc: '#<%s %s source %s>' % [self.class, full_name, @source] end |
#pretty_print(q) ⇒ Object
:nodoc:
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/rubygems/resolver/index_specification.rb', line 66 def pretty_print(q) # :nodoc: q.group 2, '[Index specification', ']' do q.breakable q.text full_name unless Gem::Platform::RUBY == @platform q.breakable q.text @platform.to_s end q.breakable q.text 'source ' q.pp @source end end |
#required_ruby_version ⇒ Object
The required_ruby_version constraint for this specification
39 40 41 |
# File 'lib/rubygems/resolver/index_specification.rb', line 39 def required_ruby_version spec.required_ruby_version end |
#required_rubygems_version ⇒ Object
The required_rubygems_version constraint for this specification
47 48 49 |
# File 'lib/rubygems/resolver/index_specification.rb', line 47 def required_rubygems_version spec.required_rubygems_version end |
#spec ⇒ Object
Fetches a Gem::Specification for this IndexSpecification from the #source.
85 86 87 88 89 90 91 92 |
# File 'lib/rubygems/resolver/index_specification.rb', line 85 def spec # :nodoc: @spec ||= begin tuple = Gem::NameTuple.new @name, @version, @platform @source.fetch_spec tuple end end |