module Gemsupport::DeepClone
Public Instance Methods
deep_clone(is_root: true)
click to toggle source
# File lib/gemsupport/refinements/deep_clone.rb, line 4 def deep_clone(is_root: true) clone.tap do |deep_cloning_obj| deep_cloning_obj.instance_variables.each do |var| val = deep_cloning_obj.instance_variable_get(var) deep_cloning_obj.instance_variable_set(var, val.deep_clone(is_root: false)) end end rescue TypeError return self unless is_root raise end