Replace concat.rb with latest stdlib equivalent
Sync concat puppet function to fix some bugs Related-Bug: #1320184 Related-Bug: #1321284 Change-Id: I49a614122469b37b1c4eb2fbc29b0877a4427fbd
This commit is contained in:
parent
3d92142a56
commit
71b112d844
|
@ -1,17 +0,0 @@
|
|||
# concat.rb
|
||||
|
||||
# concatenate the contents of arrays
|
||||
# Use it like this:
|
||||
# $base_metrics = ['a', 'b']
|
||||
# $extended_metrics = ['c']
|
||||
# $metrics = concat($base_metrics, $extended_metrics)
|
||||
module Puppet::Parser::Functions
|
||||
newfunction(:concat, :type => :rvalue) do |args|
|
||||
result = []
|
||||
args.each do |arg|
|
||||
result = result.concat(arg)
|
||||
end
|
||||
result
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
#
|
||||
# concat.rb
|
||||
#
|
||||
|
||||
module Puppet::Parser::Functions
|
||||
newfunction(:concat, :type => :rvalue, :doc => <<-EOS
|
||||
Appends the contents of array 2 onto array 1.
|
||||
|
||||
*Example:*
|
||||
|
||||
concat(['1','2','3'],['4','5','6'])
|
||||
|
||||
Would result in:
|
||||
|
||||
['1','2','3','4','5','6']
|
||||
EOS
|
||||
) do |arguments|
|
||||
|
||||
# Check that 2 arguments have been given ...
|
||||
raise(Puppet::ParseError, "concat(): Wrong number of arguments " +
|
||||
"given (#{arguments.size} for 2)") if arguments.size != 2
|
||||
|
||||
a = arguments[0]
|
||||
b = arguments[1]
|
||||
|
||||
# Check that the first parameter is an array
|
||||
unless a.is_a?(Array)
|
||||
raise(Puppet::ParseError, 'concat(): Requires array to work with')
|
||||
end
|
||||
|
||||
if b.is_a?(Array)
|
||||
result = a.concat(b)
|
||||
else
|
||||
result = a << b
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
end
|
||||
|
||||
# vim: set ts=2 sw=2 et :
|
Loading…
Reference in New Issue