class Gem::Resolver::Conflict
Used internally to indicate that a dependency conflicted with a spec that would be activated.
Attributes
activated[R]
The specification that was activated prior to the conflict
dependency[R]
The dependency that is in conflict with the activated gem.
Public Class Methods
new(dependency, activated, failed_dep=dependency)
click to toggle source
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
Public Instance Methods
conflicting_dependencies()
click to toggle source
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()
click to toggle source
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()
click to toggle source
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)
click to toggle source
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)
click to toggle source
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()
click to toggle source
Return the Specification that listed the dependency
# File lib/rubygems/resolver/conflict.rb, line 112 def requester @failed_dep.requester end