summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/ast/resource_defaults.rb
blob: 812b979e937173b3c4fe449555bb71d8117ad395 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
require 'puppet/parser/ast/branch'

class Puppet::Parser::AST
  # A statement syntactically similar to an ResourceDef, but uses a
  # capitalized object type and cannot have a name.
  class ResourceDefaults < AST::Branch
    attr_accessor :type, :parameters

    associates_doc

    # As opposed to ResourceDef, this stores each default for the given
    # object type.
    def evaluate(scope)
      # Use a resource reference to canonize the type
      ref = Puppet::Resource.new(@type, "whatever")
      type = ref.type
      params = @parameters.safeevaluate(scope)

      parsewrap do
        scope.setdefaults(type, params)
      end
    end
  end
end