class Gem::Resolver::Conflict

def explanation

def explanation
  activated   = @activated.spec.full_name
  dependency  = @failed_dep.dependency
  requirement = dependency.requirement
  alternates  = dependency.matching_specs.map {|spec| spec.full_name }
  unless alternates.empty?
    matching = <<-MATCHING.chomp
Gems matching %s:
  %s
    MATCHING
    matching = matching % [
      dependency,
      alternates.join(', '),
    ]
  end
  explanation = <<-EXPLANATION
Activated %s
which does not match conflicting dependency (%s)
Conflicting dependency chains:
  %s
versus:
  %s

  EXPLANATION
  explanation % [
    activated, requirement,
    request_path(@activated).reverse.join(", depends on\n    "),
    request_path(@failed_dep).reverse.join(", depends on\n    "),
    matching
  ]
end