Method: Puppet::Parser::Compiler#evaluate_node_classes

Defined in:
lib/puppet/parser/compiler.rb

#evaluate_node_classesObject

Evaluate all of the classes specified by the node. Classes with parameters are evaluated as if they were declared. Classes without parameters or with an empty set of parameters are evaluated as if they were included. This means classes with an empty set of parameters won’t conflict even if the class has already been included.



187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'lib/puppet/parser/compiler.rb', line 187

def evaluate_node_classes
  if @node.classes.is_a? Hash
    classes_with_params, classes_without_params = @node.classes.partition { |_name, params| params and !params.empty? }

    # The results from Hash#partition are arrays of pairs rather than hashes,
    # so we have to convert to the forms evaluate_classes expects (Hash, and
    # Array of class names)
    classes_with_params = classes_with_params.to_h
    classes_without_params.map!(&:first)
  else
    classes_with_params = {}
    classes_without_params = @node.classes
  end

  evaluate_classes(classes_with_params, @node_scope || topscope)
  evaluate_classes(classes_without_params, @node_scope || topscope)
end