Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/rub/r/tool.rb
Overview
Instance Method Summary collapse
-
#deep_clone ⇒ Object
Recursively clone an object.
Instance Method Details
#deep_clone ⇒ Object
Recursively clone an object.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/rub/r/tool.rb', line 72 def deep_clone return @deep_cloning_obj if @deep_cloning @deep_cloning_obj = clone @deep_cloning_obj.instance_variables.each do |var| val = @deep_cloning_obj.instance_variable_get(var) begin @deep_cloning = true val = val.deep_clone rescue TypeError next ensure @deep_cloning = false end @deep_cloning_obj.instance_variable_set(var, val) end deep_cloning_obj = @deep_cloning_obj @deep_cloning_obj = nil deep_cloning_obj end |