Puppet Function: hash2array

Defined in:
lib/puppet/parser/functions/hash2array.rb
Function type:
Ruby 3.x API

Overview

hash2array()Any

This converts a hash to an array containing that hash. Empty argument lists are converted to an empty array. Arrays are left untouched. Hashes are converted to arrays of alternating keys and values. Strings throw an error.

Returns:

  • (Any)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/puppet/parser/functions/hash2array.rb', line 6

newfunction(:hash2array, :type => :rvalue, :doc => <<-EOS
This converts a hash to an array containing that hash. Empty argument
lists are converted to an empty array. Arrays are left untouched. Hashes are
converted to arrays of alternating keys and values. Strings throw an error.
  EOS
) do |arguments|

  if arguments.empty?
      return []
  end

  if arguments.length == 1
      if arguments[0].kind_of?(Array)
        return arguments[0]
      elsif arguments[0].kind_of?(Hash)
        result = [arguments[0]]
        return result
      else
        raise(Puppet::Error, "hash2array(): `" + arguments[0].to_s + "` is neither a hash nor an array")
      end
  end

  return arguments
end