Rubyにおけるオブジェクトのディープコピー

new_obj = Marshal.load(Marshal.dump(obj))
でオブジェクトのディープコピーを行えます。
RubyのinitializeメソッドにC++Java
コピーコンストラクタに相当する機能は
ありません。
initialize_copyメソッドは浅い(shallow) コピー
になります。
initialize(obj)メソッド内でMarshal.load(Marshal.dump(obj))
を呼ぶ出せば、クラス外からはコピーコンストラクタのよう
に扱えます。

#Object - Rubyリファレンスマニュアルの注釈1にディープコピーに
#関する記述があります。

String等一部のクラスではnewメソッドでディープコピーできます。
クラスのリファレンスを参照してから、上記の方法を検討する
ことをお薦めします。