/** rb_mod_init_copy * */ @JRubyMethod(name = "initialize_copy", required = 1) @Override public IRubyObject initialize_copy(IRubyObject original) { super.initialize_copy(original); RubyModule originalModule = (RubyModule)original; if (!getMetaClass().isSingleton()) setMetaClass(originalModule.getSingletonClassClone()); setSuperClass(originalModule.getSuperClass()); if (originalModule.hasVariables()) syncVariables(originalModule); syncConstants(originalModule); originalModule.cloneMethods(this); return this; }
/** rb_mod_init_copy * */ @JRubyMethod(name = "initialize_copy", required = 1) @Override public IRubyObject initialize_copy(IRubyObject original) { super.initialize_copy(original); RubyModule originalModule = (RubyModule)original; if (!getMetaClass().isSingleton()) setMetaClass(originalModule.getSingletonClassClone()); setSuperClass(originalModule.getSuperClass()); if (originalModule.hasVariables()) syncVariables(originalModule); syncConstants(originalModule); originalModule.cloneMethods(this); return this; }
/** mri: rb_mod_init_copy * */ @JRubyMethod(name = "initialize_copy", required = 1, visibility = Visibility.PRIVATE) @Override public IRubyObject initialize_copy(IRubyObject original) { if (this instanceof RubyClass) { checkSafeTypeToCopy((RubyClass) original); } super.initialize_copy(original); RubyModule originalModule = (RubyModule)original; if (!getMetaClass().isSingleton()) { setMetaClass(originalModule.getSingletonClassCloneAndAttach(this)); } setSuperClass(originalModule.getSuperClass()); if (originalModule.hasVariables()) syncVariables(originalModule); syncConstants(originalModule); originalModule.cloneMethods(this); return this; }
/** mri: rb_mod_init_copy * */ @JRubyMethod(name = "initialize_copy", required = 1, visibility = Visibility.PRIVATE) @Override public IRubyObject initialize_copy(IRubyObject original) { if (this instanceof RubyClass) { checkSafeTypeToCopy((RubyClass) original); } super.initialize_copy(original); RubyModule originalModule = (RubyModule)original; if (!getMetaClass().isSingleton()) { setMetaClass(originalModule.getSingletonClassCloneAndAttach(this)); } setSuperClass(originalModule.getSuperClass()); if (originalModule.hasVariables()) syncVariables(originalModule); syncConstants(originalModule); originalModule.cloneMethods(this); return this; }