模块 Gem::Molinillo::Delegates::SpecificationProvider

Delegates 将所有 {Gem::Molinillo::SpecificationProvider} 方法委托给 ‘#specification_provider` 属性。

公共实例方法

allow_missing?(dependency) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#allow_missing?)

# File rubygems/vendor/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) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#dependencies_equal?)

# File rubygems/vendor/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) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#dependencies_for)

# File rubygems/vendor/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) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#name_for)

# File rubygems/vendor/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_source() 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#name_for_explicit_dependency_source)

# File rubygems/vendor/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_source() 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#name_for_locking_dependency_source)

# File rubygems/vendor/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) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#requirement_satisfied_by?)

# File rubygems/vendor/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) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#search_for)

# File rubygems/vendor/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) 点击切换源

(参见 Gem::Molinillo::SpecificationProvider#sort_dependencies)

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

私有实例方法

with_no_such_dependency_error_handling() { || ... } 点击切换源

确保任何引发的 {NoSuchDependencyError} 都设置了它的 {NoSuchDependencyError#required_by}。@yield

# File rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb, line 76
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