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)


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

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|
  return [] if arguments.empty?

  if arguments.length == 1
    return arguments[0] if arguments[0].is_a?(Array)
    return [arguments[0]] if arguments[0].is_a?(Hash)

    raise(Puppet::Error, "hash2array(): `#{arguments[0]}` is neither a hash nor an array")
  end

  return arguments
end