Module: Gem::Resolver::Molinillo::Delegates::SpecificationProvider
- Included in:
- Resolver::Resolution, VersionConflict
- Defined in:
- lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb
Overview
Delegates all SpecificationProvider methods to a ‘#specification_provider` property.
Instance Method Summary collapse
-
#allow_missing?(dependency) ⇒ Boolean
Returns whether this dependency, which has no possible matching specifications, can safely be ignored.
-
#dependencies_equal?(dependencies, other_dependencies) ⇒ Boolean
Determines whether two arrays of dependencies are equal, and thus can be grouped.
-
#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
The name of the source of explicit dependencies, i.e.
-
#name_for_locking_dependency_source ⇒ String
The name of the source of ‘locked’ dependencies, i.e.
-
#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.
-
#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.
Instance Method Details
#allow_missing?(dependency) ⇒ Boolean
Returns whether this dependency, which has no possible matching specifications, can safely be ignored.
65 66 67 68 69 |
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 65 def allow_missing?(dependency) with_no_such_dependency_error_handling do specification_provider.allow_missing?(dependency) end end |
#dependencies_equal?(dependencies, other_dependencies) ⇒ Boolean
Determines whether two arrays of dependencies are equal, and thus can be grouped.
30 31 32 33 34 |
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 30 def dependencies_equal?(dependencies, other_dependencies) with_no_such_dependency_error_handling do specification_provider.dependencies_equal?(dependencies, other_dependencies) 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`.
16 17 18 19 20 |
# File 'lib/rubygems/resolver/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`.
37 38 39 40 41 |
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 37 def name_for(dependency) with_no_such_dependency_error_handling do specification_provider.name_for(dependency) end end |
#name_for_explicit_dependency_source ⇒ String
Returns the name of the source of explicit dependencies, i.e. those passed to Resolver#resolve directly.
44 45 46 47 48 |
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 44 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
Returns the name of the source of ‘locked’ dependencies, i.e. those passed to Resolver#resolve directly as the ‘base`.
51 52 53 54 55 |
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 51 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.
23 24 25 26 27 |
# File 'lib/rubygems/resolver/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.
9 10 11 12 13 |
# File 'lib/rubygems/resolver/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?
58 59 60 61 62 |
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb', line 58 def sort_dependencies(dependencies, activated, conflicts) with_no_such_dependency_error_handling do specification_provider.sort_dependencies(dependencies, activated, conflicts) end end |