summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/ast/resource_reference.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/parser/ast/resource_reference.rb')
-rw-r--r--lib/puppet/parser/ast/resource_reference.rb16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/puppet/parser/ast/resource_reference.rb b/lib/puppet/parser/ast/resource_reference.rb
index 4bb41165a..e5e2dce99 100644
--- a/lib/puppet/parser/ast/resource_reference.rb
+++ b/lib/puppet/parser/ast/resource_reference.rb
@@ -24,16 +24,20 @@ class Puppet::Parser::AST
# and name.
def evaluate(scope)
title = @title.safeevaluate(scope)
+ title = [title] unless title.is_a?(Array)
+
if @type.to_s.downcase == "class"
- objtype = "class"
- title = qualified_class(scope, title)
+ resource_type = "class"
+ title = title.collect { |t| qualified_class(scope, t) }
else
- objtype = qualified_type(scope)
+ resource_type = qualified_type(scope)
end
- return Puppet::Parser::Resource::Reference.new(
- :type => objtype, :title => title
- )
+ title = title.collect { |t| Puppet::Parser::Resource::Reference.new(
+ :type => resource_type, :title => t
+ ) }
+ return title.pop if title.length == 1
+ return title
end
# Look up a fully qualified class name.