diff options
author | fiddyspence <chris.spence@puppetlabs.com> | 2013-05-24 16:33:24 +0100 |
---|---|---|
committer | fiddyspence <chris.spence@puppetlabs.com> | 2013-05-24 16:33:24 +0100 |
commit | 3707c47dcdf154b2396d9240fc90f76450890b71 (patch) | |
tree | 3ac3565f2bf7a0043f1a09584ce93a8dc24ed5a0 /lib/puppet | |
parent | 2cdbbafc06844afe7337717d9e29c720819d528c (diff) | |
download | puppet-stdlib-3707c47dcdf154b2396d9240fc90f76450890b71.tar.gz puppet-stdlib-3707c47dcdf154b2396d9240fc90f76450890b71.tar.bz2 |
Adding base64 function
Adding base64 function and spec test. Included a bonus fix to
validate_slength_spec.rb to put the expectation message in the right
place.
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/parser/functions/base64.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/base64.rb b/lib/puppet/parser/functions/base64.rb new file mode 100644 index 0000000..d9a590a --- /dev/null +++ b/lib/puppet/parser/functions/base64.rb @@ -0,0 +1,37 @@ +module Puppet::Parser::Functions + + newfunction(:base64, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| + + Base64 encode or decode a string based on the command and the string submitted + + Usage: + + $encodestring = base64('encode','thestring') + $decodestring = base64('decode','dGhlc3RyaW5n') + + ENDHEREDOC + + require 'base64' + + raise Puppet::ParseError, ("base64(): Wrong number of arguments (#{args.length}; must be = 2)") unless args.length == 2 + + actions = ['encode','decode'] + + unless actions.include?(args[0]) + raise Puppet::ParseError, ("base64(): the first argument must be one of 'encode' or 'decode'") + end + + unless args[1].is_a?(String) + raise Puppet::ParseError, ("base64(): the second argument must be a string to base64") + end + + case args[0] + when 'encode' + result = Base64.encode64(args[1]) + when 'decode' + result = Base64.decode64(args[1]) + end + + return result + end +end |