Exception: Solve::Errors::NoSolutionError
- Inherits:
-
SolveError
- Object
- StandardError
- SolveError
- Solve::Errors::NoSolutionError
- Defined in:
- lib/solve/errors.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#artifacts_with_no_satisfactory_version ⇒ Array<String>
readonly
The artifact for which there are conflicting dependencies.
-
#constraints_excluding_all_artifacts ⇒ Array<String>
readonly
Constraints that eliminate all versions of an artifact, e.g.
-
#missing_artifacts ⇒ Array<String>
readonly
Artifacts that don’t exist at any version but are required for a valid solution.
-
#unsatisfiable_demand ⇒ String
readonly
A demand that has conflicting dependencies.
Instance Method Summary collapse
-
#initialize(message = nil, causes = {}) ⇒ NoSolutionError
constructor
A new instance of NoSolutionError.
- #to_s ⇒ Object
Constructor Details
#initialize(message = nil, causes = {}) ⇒ NoSolutionError
Returns a new instance of NoSolutionError.
38 39 40 41 42 43 44 45 |
# File 'lib/solve/errors.rb', line 38 def initialize( = nil, causes = {}) super() @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 |
Instance Attribute Details
#artifacts_with_no_satisfactory_version ⇒ Array<String> (readonly)
The artifact for which there are conflicting dependencies
31 32 33 |
# File 'lib/solve/errors.rb', line 31 def artifacts_with_no_satisfactory_version @artifacts_with_no_satisfactory_version end |
#constraints_excluding_all_artifacts ⇒ Array<String> (readonly)
Constraints that eliminate all versions of an artifact, e.g. you ask for mysql >= 2.0.0 but only 1.0.0 exists.
23 24 25 |
# File 'lib/solve/errors.rb', line 23 def constraints_excluding_all_artifacts @constraints_excluding_all_artifacts end |
#missing_artifacts ⇒ Array<String> (readonly)
Artifacts that don’t exist at any version but are required for a valid solution
18 19 20 |
# File 'lib/solve/errors.rb', line 18 def missing_artifacts @missing_artifacts end |
#unsatisfiable_demand ⇒ String (readonly)
A demand that has conflicting dependencies
27 28 29 |
# File 'lib/solve/errors.rb', line 27 def unsatisfiable_demand @unsatisfiable_demand end |
Instance Method Details
#to_s ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# 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 |