4 module Puppet::Parser::Functions
5 newfunction(:enclose_ipv6, :type => :rvalue, :doc => <<-DOC
7 Takes an array of ip addresses and encloses the ipv6 addresses with square brackets.
10 encloses the ipv6 addresses with square brackets.
17 rescuable_exceptions = [ArgumentError]
18 if defined?(IPAddr::InvalidAddressError)
19 rescuable_exceptions << IPAddr::InvalidAddressError
22 if arguments.size != 1
23 raise(Puppet::ParseError, "enclose_ipv6(): Wrong number of arguments given #{arguments.size} for 1")
25 unless arguments[0].is_a?(String) || arguments[0].is_a?(Array)
26 raise(Puppet::ParseError, "enclose_ipv6(): Wrong argument type given #{arguments[0].class} expected String or Array")
29 input = [arguments[0]].flatten.compact
36 rescue *rescuable_exceptions
37 raise(Puppet::ParseError, "enclose_ipv6(): Wrong argument given #{val} is not an ip address.")
39 val = "[#{ip}]" if ip.ipv6?