In Files

  • rubygems/resolver/conflict.rb

Class/Module Index [+]

Quicksearch

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 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 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 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 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 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 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 rubygems/resolver/conflict.rb, line 112
def requester
  @failed_dep.requester
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus