U:RDoc::AnyMethod[iI"dup:ETI"Object#dup;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"GProduces a shallow copy of obj---the instance variables of ;TI"@obj are copied, but not the objects they reference. ;TI"=dup copies the tainted state of obj.;To:RDoc::Markup::BlankLineo; ; [I"@This method may have class-specific behavior. If so, that ;TI"Hbehavior will be documented under the #+initialize_copy+ method of ;TI"the class.;T@S:RDoc::Markup::Heading: leveli: textI"on dup vs clone;T@o; ; [ I"LIn general, clone and dup may have different ;TI"Jsemantics in descendant classes. While clone is used to ;TI"Iduplicate an object, including its internal state, dup ;TI"Itypically uses the class of the descendant object to create the new ;TI"instance.;T@o; ; [I"RWhen using #dup, any modules that the object has been extended with will not ;TI"be copied.;T@o:RDoc::Markup::Verbatim; [I"class Klass ;TI" attr_accessor :str ;TI" end ;TI" ;TI"module Foo ;TI" def foo; 'foo'; end ;TI" end ;TI" ;TI",s1 = Klass.new #=> # ;TI",s1.extend(Foo) #=> # ;TI"s1.foo #=> "foo" ;TI" ;TI"+s2 = s1.clone #=> # ;TI"s2.foo #=> "foo" ;TI" ;TI")s3 = s1.dup #=> # ;TI"Ms3.foo #=> NoMethodError: undefined method `foo' for #;T: @format0: @fileI" object.c;T:0@omit_headings_from_table_of_contents_below0I"obj.dup -> an_object ;T0[I"();T@6FI" Object;TcRDoc::NormalClass00