This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.
# Proc.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.