Class: Array
Instance Method Summary collapse
-
#full_clone(progress = {}) ⇒ Object
The full_clone method for arrays.
Instance Method Details
#full_clone(progress = {}) ⇒ Object
The full_clone method for arrays.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/full_clone/array.rb', line 4 def full_clone(progress={}) progress[object_id] = result = clone exclude = full_clone_exclude if exclude.empty? each_index do |name| value = result[name] value = progress[value.object_id] || value.full_clone(progress) result[name] = value end else each_index do |name| unless exclude.include?(name) value = result[name] value = progress[value.object_id] || value.full_clone(progress) result[name] = value end end end result end |