8115642f4d
Many installations are pinned to stdlib 3.2. This change vendors the any2arry function from stdlib 4 until Puppet Enterprise catches up. At that point the vendored function will be removed. Change-Id: Ide8a9c526ba36a0641c0e118c3280be0e766bd14
35 lines
849 B
Ruby
35 lines
849 B
Ruby
#
|
|
# os_any2array.rb
|
|
#
|
|
# TODO: Remove this function when puppetlabs-stdlib 4.0.0 is in wider use
|
|
|
|
module Puppet::Parser::Functions
|
|
newfunction(:os_any2array, :type => :rvalue, :doc => <<-EOS
|
|
This converts any object to an array containing that object. Empty argument
|
|
lists are converted to an empty array. Arrays are left untouched. Hashes are
|
|
converted to arrays of alternating keys and values.
|
|
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].each do |key, value|
|
|
result << key << value
|
|
end
|
|
return result
|
|
end
|
|
end
|
|
|
|
return arguments
|
|
end
|
|
end
|
|
|
|
# vim: set ts=2 sw=2 et :
|