module Collapsium::RecursiveDup
Provides recursive (deep) dup function for hashes.
Public Instance Methods
recursive_dup()
click to toggle source
# File lib/collapsium/recursive_dup.rb, line 19 def recursive_dup ret = map do |k, v| # Hash values, recurse into them. if v.is_a?(Hash) n = ViralCapabilities.enhance_hash_value(self, v) next [k, n.recursive_dup] end begin # Other duplicatable values next [k, v.dup] rescue TypeError # Values such as e.g. Fixnum next [k, v] end end ret = Hash[ret] return ViralCapabilities.enhance_hash_value(self, ret) end
Also aliased as: deep_dup