module Bundler::Molinillo::Delegates::SpecificationProvider - bundler-1.15.4 Documentation

# module Bundler::Molinillo::Delegates::SpecificationProvider

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

### Public Instance Methods

allow_missing?(dependency) click to toggle source

(see Bundler::Molinillo::SpecificationProvider#allow_missing?)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#dependencies_for)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#name_for)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#name_for_explicit_dependency_source)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#name_for_locking_dependency_source)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#requirement_satisfied_by?)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#search_for)

    # File lib/bundler/vendor/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 Bundler::Molinillo::SpecificationProvider#sort_dependencies)

    # File lib/bundler/vendor/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/bundler/vendor/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