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

Methods
C
E
F
N
R
Attributes
[R] activated

The specification that was activated prior to the conflict

[R] dependency

The dependency that is in conflict with the activated gem.

Class Public methods
new(dependency, activated, failed_dep=dependency)

Creates a new resolver conflict when dependency is in conflict with an already activated specification.

# File lib/rubygems/resolver/conflict.rb, line 23
def initialize(dependency, activated, failed_dep=dependency)
  @dependency = dependency
  @activated = activated
  @failed_dep = failed_dep
end
Instance Public methods
conflicting_dependencies()

Return the 2 dependency objects that conflicted

# File lib/rubygems/resolver/conflict.rb, line 46
def conflicting_dependencies
  [@failed_dep.dependency, @activated.request.dependency]
end
explain()

A string explanation of the conflict.

# File lib/rubygems/resolver/conflict.rb, line 39
def explain
  "<Conflict wanted: #{@failed_dep}, had: #{activated.spec.full_name}>"
end
explanation()

Explanation of the conflict used by exceptions to print useful messages

# File lib/rubygems/resolver/conflict.rb, line 53
def explanation
  activated   = @activated.spec.full_name
  requirement = @failed_dep.dependency.requirement

  "  Activated %s via:\n    %s\n  instead of (%s) via:\n    %s\n" % [
    activated,   request_path(@activated).join(', '),
    requirement, request_path(requester).join(', '),
  ]
end
for_spec?(spec)

Returns true if the conflicting dependency's name matches spec.

# File lib/rubygems/resolver/conflict.rb, line 66
def for_spec?(spec)
  @dependency.name == spec.name
end
request_path(current)

Path of activations from the current list.

# File lib/rubygems/resolver/conflict.rb, line 94
def request_path current
  path = []

  while current do
    requirement = current.request.dependency.requirement
    path << "#{current.spec.full_name} (#{requirement})"

    current = current.parent
  end

  path = ['user request (gem command or Gemfile)'] if path.empty?

  path
end
requester()

Return the Specification that listed the dependency

# File lib/rubygems/resolver/conflict.rb, line 112
def requester
  @failed_dep.requester
end