824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
|
# File 'lib/map.rb', line 824
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{|skey, svalue| [Array(skey), svalue]}
strategy.each do |skey, svalue|
leaf_for(skey, :autovivify => true) do |leaf, k|
Map.collection_set(leaf, k, svalue)
end
end
self
end
|