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 28  | 
    
      # 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  | 
  
Instance Method Details
#==(other) ⇒ Object
      58 59 60 61 62 63  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 58 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
      33 34 35  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 33 def dependencies spec.dependencies end  | 
  
#hash ⇒ Object
      65 66 67  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 65 def hash @name.hash ^ @version.hash ^ @platform.hash end  | 
  
#inspect ⇒ Object
:nodoc:
      69 70 71  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 69 def inspect # :nodoc: "#<%s %s source %s>" % [self.class, full_name, @source] end  | 
  
#pretty_print(q) ⇒ Object
:nodoc:
      73 74 75 76 77 78 79 80 81 82 83 84 85 86 87  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 73 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
A fallback is included because when generated, some marshalled specs have it set to nil.
      43 44 45  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 43 def required_ruby_version spec.required_ruby_version || Gem::Requirement.default end  | 
  
#required_rubygems_version ⇒ Object
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.
      54 55 56  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 54 def required_rubygems_version spec.required_rubygems_version || Gem::Requirement.default end  | 
  
#spec ⇒ Object
Fetches a Gem::Specification for this IndexSpecification from the #source.
      92 93 94 95 96 97 98 99  | 
    
      # File 'lib/rubygems/resolver/index_specification.rb', line 92 def spec # :nodoc: @spec ||= begin tuple = Gem::NameTuple.new @name, @version, @original_platform @source.fetch_spec tuple end end  |