summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/ast/resource_reference.rb
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2008-10-04 16:27:51 +0200
committerJames Turnbull <james@lovedthanlost.net>2008-10-05 14:35:44 +1100
commit750e9abc64af58e547e7b1ad5698c71feb071bf6 (patch)
treebf5c7649dcccf29903e320d4d2d10713c9ccc03d /lib/puppet/parser/ast/resource_reference.rb
parent782181e0da1bb6f5a091046ad68989300c508176 (diff)
downloadpuppet-750e9abc64af58e547e7b1ad5698c71feb071bf6.tar.gz
puppet-750e9abc64af58e547e7b1ad5698c71feb071bf6.tar.xz
puppet-750e9abc64af58e547e7b1ad5698c71feb071bf6.zip
Fix #381 - Allow multiple resource overrides or references
Allow this syntax: Resource[title1,title2] { param => value } as a compact form of Resource[title1] { param => value } Resource[title2] { param => value } This patch also introduces for free the possibility to group class references by type: exec { test: require => File["file1","file2","File3"] } which is completely equivalent to: exec { test: require => [ File["file1"],File["file2"],File["File3"] ] }
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.