This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

dup

        # Binding.dup

(from ruby core)
### Implementation from Object
---
    obj.dup -> an_object

---

Produces a shallow copy of *obj*---the instance variables of *obj* are
copied, but not the objects they reference.

This method may have class-specific behavior.  If so, that behavior will
be documented under the #`initialize_copy` method of the class.

### on dup vs clone

In general, #clone and #dup may have different semantics in descendant
classes. While #clone is used to duplicate an object, including its
internal state, #dup typically uses the class of the descendant object
to create the new instance.

When using #dup, any modules that the object has been extended with will
not be copied.

    class Klass
      attr_accessor :str
    end

    module Foo
      def foo; 'foo'; end
    end

    s1 = Klass.new #=> #<Klass:0x401b3a38>
    s1.extend(Foo) #=> #<Klass:0x401b3a38>
    s1.foo #=> "foo"

    s2 = s1.clone #=> #<Klass:0x401be280>
    s2.foo #=> "foo"

    s3 = s1.dup #=> #<Klass:0x401c1084>
    s3.foo #=> NoMethodError: undefined method `foo' for #<Klass:0x401c1084>



      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.