]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/stdlib/lib/puppet/parser/functions/base64.rb
upgrade to stdlib 4.6.1
[dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / base64.rb
1 module Puppet::Parser::Functions
2
3   newfunction(:base64, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args|
4
5     Base64 encode or decode a string based on the command and the string submitted
6
7     Usage:
8
9       $encodestring = base64('encode','thestring')
10       $decodestring = base64('decode','dGhlc3RyaW5n')
11
12     ENDHEREDOC
13
14     require 'base64'
15
16     raise Puppet::ParseError, ("base64(): Wrong number of arguments (#{args.length}; must be = 2)") unless args.length == 2
17
18     actions = ['encode','decode']
19
20     unless actions.include?(args[0])
21       raise Puppet::ParseError, ("base64(): the first argument must be one of 'encode' or 'decode'")
22     end
23
24     unless args[1].is_a?(String)
25       raise Puppet::ParseError, ("base64(): the second argument must be a string to base64")
26     end
27
28     case args[0]
29       when 'encode'
30         result = Base64.encode64(args[1])
31       when 'decode'
32         result = Base64.decode64(args[1])
33     end
34
35     return result
36   end
37 end