Exception: PuppetfileResolver::Puppetfile::DocumentVersionConflictError

Inherits:
DocumentResolveError
  • Object
show all
Defined in:
lib/puppetfile-resolver/puppetfile/validation_errors.rb

Instance Attribute Summary

Attributes inherited from DocumentResolveError

#molinillo_error

Instance Method Summary collapse

Constructor Details

#initialize(molinillo_error) ⇒ DocumentVersionConflictError

Returns a new instance of DocumentVersionConflictError.



55
56
57
# File 'lib/puppetfile-resolver/puppetfile/validation_errors.rb', line 55

def initialize(molinillo_error)
  super(molinillo_error.message_with_trees(solver_name: 'Puppetfile Resolver'), molinillo_error)
end

Instance Method Details

#puppetfile_modulesObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/puppetfile-resolver/puppetfile/validation_errors.rb', line 59

def puppetfile_modules
  puppetfile_modules = []
  molinillo_error.conflicts.reduce(''.dup) do |_o, (_name, conflict)|
    # We don't actually care about the dependency tree,
    # only the leaves within. So just grab all of leaves and
    # find all of the modules in the Puppetfile document
    conflict
      .requirement_trees
      .flatten
      .uniq
      .select { |req| req.is_a?(PuppetfileResolver::Models::PuppetfileDependency) }
      .each do |req|
        puppetfile_modules << req.puppetfile_module unless puppetfile_modules.include?(req.puppetfile_module)
      end
  end

  puppetfile_modules
end