15: def evaluate(scope)
16:
17: paramobjects = @params.collect { |param|
18: param.safeevaluate(scope)
19: }
20:
21: resource_titles = @title.safeevaluate(scope)
22:
23:
24: unless resource_titles.is_a?(Array)
25: resource_titles = [resource_titles]
26: end
27:
28: resource_type = qualified_type(scope)
29:
30:
31:
32:
33:
34:
35: virt = self.virtual || self.exported
36:
37:
38:
39:
40: resource_titles.flatten.collect { |resource_title|
41: exceptwrap :type => Puppet::ParseError do
42: resource = Puppet::Parser::Resource.new(
43: :type => resource_type,
44: :title => resource_title,
45: :params => paramobjects,
46: :file => self.file,
47: :line => self.line,
48: :exported => self.exported,
49: :virtual => virt,
50: :source => scope.source,
51: :scope => scope
52: )
53:
54:
55:
56:
57: scope.compiler.add_resource(scope, resource)
58: resource
59: end
60: }.reject { |resource| resource.nil? }
61: end