class Puppet::Pops::Evaluator::Collectors::FixedSetCollector

Public Class Methods

new(scope, resources) click to toggle source

Creates a FixedSetCollector using the AbstractCollector constructor to set the scope. It is not possible for a collection to have overrides in this case, since we have a fixed set of resources that can be different types.

@param [Array] resources the fixed set of resources we want to realize

   # File lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb
 9 def initialize(scope, resources)
10   super(scope)
11   @resources = resources.is_a?(Array)? resources.dup : [resources]
12 end

Public Instance Methods

collect() click to toggle source

Collects a fixed set of resources and realizes them. Used by the realize function

   # File lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb
16 def collect
17   resolved = []
18   result = @resources.reduce([]) do |memo, ref|
19     res = @scope.findresource(ref.to_s)
20     if res
21       res.virtual = false
22       memo << res
23       resolved << ref
24     end
25     memo
26   end
27 
28   @resources = @resources - resolved
29 
30   @scope.compiler.delete_collection(self) if @resources.empty?
31 
32   result
33 end
unresolved_resources() click to toggle source
   # File lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb
35 def unresolved_resources
36   @resources
37 end