35 lines
816 B
Ruby
35 lines
816 B
Ruby
#
|
|
# any2array.rb
|
|
#
|
|
|
|
module Puppet::Parser::Functions
|
|
newfunction(: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
|
|
else
|
|
return [arguments[0]]
|
|
end
|
|
end
|
|
|
|
return arguments
|
|
end
|
|
end
|
|
|
|
# vim: set ts=2 sw=2 et :
|