class Gem::DependencyResolver::DependencyConflict

Used internally to indicate that a dependency conflicted with a spec that would be activated.

Attributes

activated[R]
dependency[R]

Public Class Methods

new(dependency, activated, failed_dep=dependency) click to toggle source
# File lib/rubygems/dependency_resolver/dependency_conflict.rb, line 11
def initialize(dependency, activated, failed_dep=dependency)
  @dependency = dependency
  @activated = activated
  @failed_dep = failed_dep
end

Public Instance Methods

conflicting_dependencies() click to toggle source

Return the 2 dependency objects that conflicted

# File lib/rubygems/dependency_resolver/dependency_conflict.rb, line 20
def conflicting_dependencies
  [@failed_dep.dependency, @activated.request.dependency]
end
explanation() click to toggle source

Explanation of the conflict used by exceptions to print useful messages

# File lib/rubygems/dependency_resolver/dependency_conflict.rb, line 27
def explanation
  activated   = @activated.spec.full_name
  requirement = @failed_dep.dependency.requirement

  "  Activated %s instead of (%s) via:\n    %s\n" % [
    activated, requirement, request_path.join(', ')
  ]
end
for_spec?(spec) click to toggle source
# File lib/rubygems/dependency_resolver/dependency_conflict.rb, line 36
def for_spec?(spec)
  @dependency.name == spec.name
end
request_path() click to toggle source

Path of specifications that requested this dependency

# File lib/rubygems/dependency_resolver/dependency_conflict.rb, line 64
def request_path
  current = requester
  path    = []

  while current do
    path << current.spec.full_name

    current = current.request.requester
  end

  path
end
requester() click to toggle source

Return the Specification that listed the dependency

# File lib/rubygems/dependency_resolver/dependency_conflict.rb, line 80
def requester
  @failed_dep.requester
end