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