module Gem::Resolver::Molinillo::Delegates::SpecificationProvider

Delegates all {Gem::Resolver::Molinillo::SpecificationProvider} methods to a `#specification_provider` property.

Public Instance Methods

allow_missing?(dependency) click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#allow_missing?)

# File lib/rubygems/resolver/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) click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#dependencies_for)

# 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) click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#name_for)

# File lib/rubygems/resolver/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() click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#name_for_explicit_dependency_source)

# File lib/rubygems/resolver/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() click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#name_for_locking_dependency_source)

# File lib/rubygems/resolver/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) click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#requirement_satisfied_by?)

# 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) click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#search_for)

# 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) click to toggle source

(see Gem::Resolver::Molinillo::SpecificationProvider#sort_dependencies)

# File lib/rubygems/resolver/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

Private Instance Methods

with_no_such_dependency_error_handling() { || ... } click to toggle source

Ensures any raised {NoSuchDependencyError} has its {NoSuchDependencyError#required_by} set. @yield

# File lib/rubygems/resolver/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