class Solve::Errors::NoSolutionError

Attributes

artifacts_with_no_satisfactory_version[R]

The artifact for which there are conflicting dependencies @return [Array<String>] The “most constrained” artifacts

constraints_excluding_all_artifacts[R]

Constraints that eliminate all versions of an artifact, e.g. you ask for mysql >= 2.0.0 but only 1.0.0 exists. @return [Array<String>] Invalid constraints as strings

missing_artifacts[R]

Artifacts that don't exist at any version but are required for a valid solution @return [Array<String>] Missing artifact names

unsatisfiable_demand[R]

A demand that has conflicting dependencies @return [String] the unsatisfiable demand

Public Class Methods

new(message = nil, causes = {}) click to toggle source

@param [#to_s] message @option causes [Array<String>] :missing_artifacts ([]) @option causes [Array<String>] :constraints_excluding_all_artifacts ([]) @option causes [#to_s] :unsatisfiable_demand (nil) @option causes [Array<String>] :artifacts_with_no_satisfactory_version ([])

Calls superclass method
# File lib/solve/errors.rb, line 38
def initialize(message = nil, causes = {})
  super(message)
  @message = message
  @missing_artifacts = causes[:missing_artifacts] || []
  @constraints_excluding_all_artifacts = causes[:constraints_excluding_all_artifacts] || []
  @unsatisfiable_demand = causes[:unsatisfiable_demand] || nil
  @artifacts_with_no_satisfactory_version = causes[:artifacts_with_no_satisfactory_version] || []
end

Public Instance Methods

to_s() click to toggle source
# File lib/solve/errors.rb, line 47
def to_s
  s = ""
  s << "#{@message}\n"
  s << "Missing artifacts: #{missing_artifacts.join(",")}\n" unless missing_artifacts.empty?
  unless constraints_excluding_all_artifacts.empty?
    pretty = constraints_excluding_all_artifacts.map { |constraint| "(#{constraint[0]} #{constraint[1]})" }.join(",")
    s << "Constraints that match no available version: #{pretty}\n"
  end
  s << "Demand that cannot be met: #{unsatisfiable_demand}\n" if unsatisfiable_demand
  unless artifacts_with_no_satisfactory_version.empty?
    s << "Artifacts for which there are conflicting dependencies: #{artifacts_with_no_satisfactory_version.join(",")}"
  end
  s
end