# File lib/map.rb, line 804 def set(*args) case when args.empty? return [] when args.size == 1 && args.first.is_a?(Hash) hash = args.shift else hash = {} value = args.pop key = Array(args).flatten hash[key] = value end strategy = hash.map{|key, value| [Array(key), value]} strategy.each do |key, value| leaf_for(key, :autovivify => true) do |leaf, k| Map.collection_set(leaf, k, value) end end self end