lib/fluent/plugin/out_mongo.rb in fluent-plugin-mongo-0.7.3 vs lib/fluent/plugin/out_mongo.rb in fluent-plugin-mongo-0.7.4
- old
+ new
@@ -251,20 +251,27 @@
end
version
end
- def replace_key_of_hash(hash, pattern, replacement)
- result = Hash.new
- hash.each_pair do |k, v|
- k = k.gsub(pattern, replacement)
+ def replace_key_of_hash(hash_or_array, pattern, replacement)
+ case hash_or_array
+ when Array
+ hash_or_array.map do |elm|
+ replace_key_of_hash(elm, pattern, replacement)
+ end
+ when Hash
+ result = Hash.new
+ hash_or_array.each_pair do |k, v|
+ k = k.gsub(pattern, replacement)
- if v.is_a?(Hash)
- result[k] = replace_key_of_hash(v, pattern, replacement)
- else
- result[k] = (v.dup rescue v)
+ if v.is_a?(Hash) || v.is_a?(Array)
+ result[k] = replace_key_of_hash(v, pattern, replacement)
+ else
+ result[k] = v
+ end
end
+ result
end
- result
end
end
end