# 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