Class: Class

Inherits:
Object show all
Defined in:
lib/dohutil/core_ext/force_deep_copy.rb

Instance Method Summary collapse

Instance Method Details

#force_deep_copy(*syms) ⇒ Object



2
3
4
5
6
7
8
9
10
11
# File 'lib/dohutil/core_ext/force_deep_copy.rb', line 2

def force_deep_copy(*syms)
  return if syms.empty?
  code = "def initialize_copy(orig); "
  code << "super(orig)\n "
  syms.each do |elem|
    code << "@#{elem} = @#{elem}.nil? ? nil : @#{elem}.dup\n "
  end
  code << "end\n"
  class_eval(code)
end