summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/ast/resource_defaults.rb
blob: 4856f0594d6360e19699ef76e42ca17599ceaa78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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, :params

        # 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::ResourceReference.new(@type, "whatever")
            type = ref.type
            params = @params.safeevaluate(scope)

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