diff options
author | S.H <gamelinks007@gmail.com> | 2020-03-17 19:37:07 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-17 19:37:07 +0900 |
commit | 290d608637e37323bb6eeda1b1466519f16308a5 (patch) | |
tree | a15dfc4dd8299b936999e8ddc3c5f70729858a71 /kernel.rb | |
parent | d514ba8e17106c6d159c3902ac5456d6269731f8 (diff) | |
download | ruby-290d608637e37323bb6eeda1b1466519f16308a5.tar.gz |
support builtin for Kernel#clone
Diffstat (limited to 'kernel.rb')
-rw-r--r-- | kernel.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/kernel.rb b/kernel.rb new file mode 100644 index 0000000000..46d9438f85 --- /dev/null +++ b/kernel.rb @@ -0,0 +1,29 @@ +module Kernel + # + # call-seq: + # obj.clone(freeze: true) -> an_object + # + # Produces a shallow copy of <i>obj</i>---the instance variables of + # <i>obj</i> are copied, but not the objects they reference. + # #clone copies the frozen (unless +:freeze+ keyword argument is + # given with a false value) state of <i>obj</i>. See + # also the discussion under Object#dup. + # + # class Klass + # attr_accessor :str + # end + # s1 = Klass.new #=> #<Klass:0x401b3a38> + # s1.str = "Hello" #=> "Hello" + # s2 = s1.clone #=> #<Klass:0x401b3998 @str="Hello"> + # s2.str[1,4] = "i" #=> "i" + # s1.inspect #=> "#<Klass:0x401b3a38 @str=\"Hi\">" + # s2.inspect #=> "#<Klass:0x401b3998 @str=\"Hi\">" + # + # This method may have class-specific behavior. If so, that + # behavior will be documented under the #+initialize_copy+ method of + # the class. + # + def clone(freeze: true) + __builtin_rb_obj_clone2(freeze) + end +end |