class Object
From: blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43424
Public Instance Methods
D(k)
click to toggle source
deep_clone()
click to toggle source
Recursively clone an object.
# 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