diff options
author | James Turnbull <james@lovedthanlost.net> | 2008-08-21 02:26:25 +1000 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2008-08-26 18:00:50 +1000 |
commit | b50e718490abe41f09e16e1edc0d8de93aac8bfe (patch) | |
tree | 95aa085a64a506bc023614bf547087dc3a2498cb /lib/puppet/parser/functions/include.rb | |
parent | 5fb50918ad355116ba85bfe7304baf61a7c8da22 (diff) | |
download | puppet-b50e718490abe41f09e16e1edc0d8de93aac8bfe.tar.gz puppet-b50e718490abe41f09e16e1edc0d8de93aac8bfe.tar.xz puppet-b50e718490abe41f09e16e1edc0d8de93aac8bfe.zip |
Fixed #1488 - Moved individual functions out of functions.rb into
the lib/puppet/parser/functions directory. New functions should be
created in this directory.
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 |