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