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

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>

Note:

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

Note:

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_sourceString



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_sourceString



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>

Note:

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