diff options
author | Luke Kanies <luke@madstop.com> | 2008-09-27 21:30:49 +0200 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2008-09-27 21:30:49 +0200 |
commit | b96bdc6a63f7be6b724c2aa7ad0ea007cba81718 (patch) | |
tree | 6d334ea12e1468b34160fa36da29dd7d78ac31ea /lib/puppet/parser/functions/include.rb | |
parent | e20f02af4a93478c5b08b7681caa12cd72b4a3a6 (diff) | |
parent | 3749267093923692d6e7bc0c9ce83b43a487b19e (diff) | |
download | puppet-b96bdc6a63f7be6b724c2aa7ad0ea007cba81718.tar.gz puppet-b96bdc6a63f7be6b724c2aa7ad0ea007cba81718.tar.xz puppet-b96bdc6a63f7be6b724c2aa7ad0ea007cba81718.zip |
Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x
Diffstat (limited to 'lib/puppet/parser/functions/include.rb')
-rw-r--r-- | lib/puppet/parser/functions/include.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/include.rb b/lib/puppet/parser/functions/include.rb new file mode 100644 index 000000000..213a04136 --- /dev/null +++ b/lib/puppet/parser/functions/include.rb @@ -0,0 +1,26 @@ +# Include the specified classes +Puppet::Parser::Functions::newfunction(:include, :doc => "Evaluate one or more classes.") do |vals| + vals = [vals] unless vals.is_a?(Array) + + # The 'false' disables lazy evaluation. + klasses = compiler.evaluate_classes(vals, self, false) + + missing = vals.find_all do |klass| + ! klasses.include?(klass) + end + + unless missing.empty? + # Throw an error if we didn't evaluate all of the classes. + str = "Could not find class" + if missing.length > 1 + str += "es" + end + + str += " " + missing.join(", ") + + if n = namespaces and ! n.empty? and n != [""] + str += " in namespaces %s" % @namespaces.join(", ") + end + self.fail Puppet::ParseError, str + end +end |