This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.
# BasicObject.instance_eval (from ruby core) --- obj.instance_eval(string [, filename [, lineno]] ) -> obj obj.instance_eval {|obj| block } -> obj --- Evaluates a string containing Ruby source code, or the given block, within the context of the receiver (*obj*). In order to set the context, the variable `self` is set to *obj* while the code is executing, giving the code access to *obj*'s instance variables and private methods. When `instance_eval` is given a block, *obj* is also passed in as the block's only argument. When `instance_eval` is given a `String`, the optional second and third parameters supply a filename and starting line number that are used when reporting compilation errors. class KlassWithSecret def initialize @secret = 99 end private def the_secret "Ssssh! The secret is #{@secret}." end end k = KlassWithSecret.new k.instance_eval { @secret } #=> 99 k.instance_eval { the_secret } #=> "Ssssh! The secret is 99." k.instance_eval {|obj| obj == self } #=> true
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.