diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2011-06-03 11:39:45 -0700 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2011-06-03 11:39:45 -0700 |
commit | b9f1bb6a63c5c06ce5b4e147dbca4ef505f02a25 (patch) | |
tree | 8513eb4b095facfd6f6489052bb9d5749b325ca1 /lib/puppet/parser | |
parent | 46533ae4281bb58065a8f068c1334e5525deca1f (diff) | |
download | puppet-stdlib-b9f1bb6a63c5c06ce5b4e147dbca4ef505f02a25.tar.gz puppet-stdlib-b9f1bb6a63c5c06ce5b4e147dbca4ef505f02a25.tar.bz2 |
Add validate_bool() function to stdlib
This function aborts catalog compilation if any of the passed
values are not true or false. Note, this catches the string
values of true and false correct and will abort catalog
compilation if they are not boolean values.
Paired-with: Dan Bode <dan@puppetlabs.com>
Diffstat (limited to 'lib/puppet/parser')
-rw-r--r-- | lib/puppet/parser/functions/validate_bool.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/validate_bool.rb b/lib/puppet/parser/functions/validate_bool.rb new file mode 100644 index 0000000..49e6378 --- /dev/null +++ b/lib/puppet/parser/functions/validate_bool.rb @@ -0,0 +1,39 @@ +module Puppet::Parser::Functions + + newfunction(:validate_bool, :doc => <<-'ENDHEREDOC') do |args| + Validate all passed values are true or false. Abort catalog compilation if the + value does not pass the check. + + Example: + + These booleans validate + + $iamtrue = true + validate_bool(true) + validate_bool(true, true, false, $iamtrue) + + These strings do NOT validate and will abort catalog compilation + + $some_array = [ true ] + validate_bool("false") + validate_bool("true") + validate_bool($some_array) + + * Jeff McCune <jeff@puppetlabs.com> + * Dan Bode <dan@puppetlabs.com> + + ENDHEREDOC + + unless args.length > 0 then + raise Puppet::ParseError, ("validate_bool(): wrong number of arguments (#{args.length}; must be > 0)") + end + + args.each do |arg| + unless (arg.is_a?(TrueClass) || arg.is_a?(FalseClass)) + raise Puppet::ParseError, ("#{arg.inspect} is not a boolean. It looks to be a #{arg.class}") + end + end + + end + +end |