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
10 def initialize(scope, resources)
11   super(scope)
12   @resources = resources.is_a?(Array)? resources.dup : [resources]
13 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
17 def collect
18   resolved = []
19   result = @resources.reduce([]) do |memo, ref|
20     res = @scope.findresource(ref.to_s)
21     if res
22       res.virtual = false
23       memo << res
24       resolved << ref
25     end
26     memo
27   end
28 
29   @resources = @resources - resolved
30 
31   @scope.compiler.delete_collection(self) if @resources.empty?
32 
33   result
34 end
unresolved_resources() click to toggle source
   # File lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb
36 def unresolved_resources
37   @resources
38 end