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

instance_eval

        # 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.