Module: Gem::Resolver::Molinillo::Delegates::SpecificationProvider
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Included In: | |
| Defined in: | lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb | 
Overview
::Gem::Resolver::Molinillo::Delegates all ::Gem::Resolver::Molinillo::SpecificationProvider methods to a #specification_provider property.
Instance Method Summary
- 
    
      #allow_missing?(dependency)  ⇒ Boolean 
    
    Returns whether this dependency, which has no possible matching specifications, can safely be ignored. 
- 
    
      #dependencies_for(specification)  ⇒ Array<Object> 
    
    Returns the dependencies of specification.
- 
    
      #name_for(dependency)  ⇒ String 
    
    Returns the name for the given dependency.
- #name_for_explicit_dependency_source ⇒ String
- #name_for_locking_dependency_source ⇒ String
- 
    
      #requirement_satisfied_by?(requirement, activated, spec)  ⇒ Boolean 
    
    Determines whether the given requirementis satisfied by the givenspec, in the context of the currentactivateddependency graph.
- 
    
      #search_for(dependency)  ⇒ Array<Object> 
    
    Search for the specifications that match the given dependency. 
- 
    
      #sort_dependencies(dependencies, activated, conflicts)  ⇒ Array<Object> 
    
    Sort dependencies so that the ones that are easiest to resolve are first. 
- 
    
      #with_no_such_dependency_error_handling { ... } 
    
    private
    Ensures any raised ::Gem::Resolver::Molinillo::NoSuchDependencyErrorhas its NoSuchDependencyError#required_by set.
Instance Method Details
    #allow_missing?(dependency)  ⇒ Boolean 
  
Returns whether this dependency, which has no possible matching specifications, can safely be ignored.
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 57
def allow_missing?(dependency) with_no_such_dependency_error_handling do specification_provider.allow_missing?(dependency) end end
    #dependencies_for(specification)  ⇒ Array<Object> 
  
This method should be ‘pure’, i.e. the return value should depend only on the ‘specification` parameter.
Returns the dependencies of specification.
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 15
def dependencies_for(specification) with_no_such_dependency_error_handling do specification_provider.dependencies_for(specification) end end
    #name_for(dependency)  ⇒ String 
  
This method should be ‘pure’, i.e. the return value should depend only on the ‘dependency` parameter.
Returns the name for the given dependency.
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 29
def name_for(dependency) with_no_such_dependency_error_handling do specification_provider.name_for(dependency) end end
    #name_for_explicit_dependency_source  ⇒ String 
  
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 36
def name_for_explicit_dependency_source with_no_such_dependency_error_handling do specification_provider.name_for_explicit_dependency_source end end
    #name_for_locking_dependency_source  ⇒ String 
  
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 43
def name_for_locking_dependency_source with_no_such_dependency_error_handling do specification_provider.name_for_locking_dependency_source end end
    #requirement_satisfied_by?(requirement, activated, spec)  ⇒ Boolean 
  
Determines whether the given requirement is satisfied by the given spec, in the context of the current activated dependency graph.
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 22
def requirement_satisfied_by?(requirement, activated, spec) with_no_such_dependency_error_handling do specification_provider.requirement_satisfied_by?(requirement, activated, spec) end end
    #search_for(dependency)  ⇒ Array<Object> 
  
This method should be ‘pure’, i.e. the return value should depend only on the ‘dependency` parameter.
Search for the specifications that match the given dependency. The specifications in the returned array will be considered in reverse order, so the latest version ought to be last.
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 8
def search_for(dependency) with_no_such_dependency_error_handling do specification_provider.search_for(dependency) end end
    #sort_dependencies(dependencies, activated, conflicts)  ⇒ Array<Object> 
  
Sort dependencies so that the ones that are easiest to resolve are first. Easiest to resolve is (usually) defined by:
- 
Is this dependency already activated? 
- 
How relaxed are the requirements? 
- 
Are there any conflicts for this dependency? 
- 
How many possibilities are there to satisfy this dependency? 
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 50
def sort_dependencies(dependencies, activated, conflicts) with_no_such_dependency_error_handling do specification_provider.sort_dependencies(dependencies, activated, conflicts) end end
#with_no_such_dependency_error_handling { ... } (private)
Ensures any raised ::Gem::Resolver::Molinillo::NoSuchDependencyError has its NoSuchDependencyError#required_by set.
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 68
def with_no_such_dependency_error_handling yield rescue NoSuchDependencyError => error if state vertex = activated.vertex_named(name_for(error.dependency)) error.required_by += vertex.incoming_edges.map { |e| e.origin.name } error.required_by << name_for_explicit_dependency_source unless vertex.explicit_requirements.empty? end raise end