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

Thread::Backtrace::Location

        # Thread::Backtrace::Location < Object

(from ruby core)
---
An object representation of a stack frame, initialized by
Kernel#caller_locations.

For example:

    # caller_locations.rb
    def a(skip)
      caller_locations(skip)
    end
    def b(skip)
      a(skip)
    end
    def c(skip)
      b(skip)
    end

    c(0..2).map do |call|
      puts call.to_s
    end

Running `ruby caller_locations.rb` will produce:

    caller_locations.rb:2:in `a'
    caller_locations.rb:5:in `b'
    caller_locations.rb:8:in `c'

Here's another example with a slightly different result:

    # foo.rb
    class Foo
      attr_accessor :locations
      def initialize(skip)
        @locations = caller_locations(skip)
      end
    end

    Foo.new(0..2).locations.map do |call|
      puts call.to_s
    end

Now run `ruby foo.rb` and you should see:

    init.rb:4:in `initialize'
    init.rb:8:in `new'
    init.rb:8:in `<main>'
---
# Instance methods:

    absolute_path
    base_label
    inspect
    label
    lineno
    path
    to_s


      

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.