diff --git a/README.md b/README.md index 6f1da40..3e4b3c3 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,10 @@ Transform a boolean (it can also be a string) to **On** or **Off**. Other values Transform a boolean (it can also be a string) to **yes** or **no**. Other values through. +#### bool2httpd + +Same as **bool2onoff**, transform a boolean (it can also be a string) to **On** or **Off**. Other values through. + ## Development We are pushing to have acceptance testing in place, so any new feature should diff --git a/lib/puppet/parser/functions/bool2httpd.rb b/lib/puppet/parser/functions/bool2httpd.rb new file mode 100644 index 0000000..f5eb7dd --- /dev/null +++ b/lib/puppet/parser/functions/bool2httpd.rb @@ -0,0 +1,35 @@ +#shamesly stolen from: https://github.com/puppetlabs/puppetlabs-apache/blob/master/lib/puppet/parser/functions/bool2httpd.rb +# +#Copyright (C) 2012 Puppet Labs Inc +# +#Puppet Labs can be contacted at: info@puppetlabs.com +# +#Licensed under the Apache License, Version 2.0 (the "License"); +# +# +Puppet::Parser::Functions::newfunction(:bool2httpd, :type => :rvalue, :doc => <<-EOS +Transform a supposed boolean to On or Off. Pass all other values through. +Given a nil value (undef), bool2httpd will return 'Off' +Example: + $trace_enable = false + $server_signature = 'mail' + bool2httpd($trace_enable) + # => 'Off' + bool2httpd($server_signature) + # => 'mail' + bool2httpd(undef) + # => 'Off' +EOS +) do |args| + raise(Puppet::ParseError, "bool2httpd() wrong number of arguments. Given: #{args.size} for 1)") if args.size != 1 + + arg = args[0] + + if arg.nil? or arg == false or arg =~ /false/i or arg == :undef + return 'Off' + elsif arg == true or arg =~ /true/i + return 'On' + end + + return arg.to_s +end