X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fmerge.rb;fp=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fmerge.rb;h=1ca8257514d2f2ba76fa7b7dafb0748287d687aa;hb=131e09855e065be940e104d9ab0f18940cc76257;hp=1b39f20600fe07186fc91f7d0ac1d1de4c4b8801;hpb=407d322498f4fde815abf381007fbecfe5c10b2b;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/lib/puppet/parser/functions/merge.rb b/3rdparty/modules/stdlib/lib/puppet/parser/functions/merge.rb index 1b39f2060..1ca825751 100644 --- a/3rdparty/modules/stdlib/lib/puppet/parser/functions/merge.rb +++ b/3rdparty/modules/stdlib/lib/puppet/parser/functions/merge.rb @@ -1,5 +1,8 @@ +# +# merge.rb +# module Puppet::Parser::Functions - newfunction(:merge, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| + newfunction(:merge, :type => :rvalue, :doc => <<-'DOC') do |args| Merges two or more hashes together and returns the resulting hash. For example: @@ -12,17 +15,20 @@ module Puppet::Parser::Functions When there is a duplicate key, the key in the rightmost hash will "win." - ENDHEREDOC + Note that since Puppet 4.0.0 the same merge can be achieved with the + operator. + + $merged_hash = $hash1 + $hash2 + DOC if args.length < 2 - raise Puppet::ParseError, ("merge(): wrong number of arguments (#{args.length}; must be at least 2)") + raise Puppet::ParseError, "merge(): wrong number of arguments (#{args.length}; must be at least 2)" end # The hash we accumulate into - accumulator = Hash.new + accumulator = {} # Merge into the accumulator hash args.each do |arg| - next if arg.is_a? String and arg.empty? # empty string is synonym for puppet's undef + next if arg.is_a?(String) && arg.empty? # empty string is synonym for puppet's undef unless arg.is_a?(Hash) raise Puppet::ParseError, "merge: unexpected argument type #{arg.class}, only expects hash arguments" end