Module: Bundler::Molinillo::Delegates::SpecificationProvider
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Included In: | |
| Defined in: | lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb | 
Overview
::Bundler::Molinillo::Delegates all ::Bundler::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 ::Bundler::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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 58
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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 16
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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 30
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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 37
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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 44
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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 23
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/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 9
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:
1) Is this dependency already activated?
2) How relaxed are the requirements?
3) Are there any conflicts for this dependency?
4) How many possibilities are there to satisfy this dependency?# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 51
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 ::Bundler::Molinillo::NoSuchDependencyError has its NoSuchDependencyError#required_by set.
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 69
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