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 56
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 14
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 28
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 35
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 42
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 21
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 7
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 49
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 67
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