ObjectTree is like tree command for Ruby ancestors.
$ gem install object_tree
require 'object_tree'
class A
end
class B < A
end
class C < B
end
puts ObjectTree.create(A)
output
<C> A
└───── <C> B
└───── <C> C
more complex pattern
require 'object_tree'
module D
end
module E
end
class A
include D
end
class B < A
end
class C < A
include E
end
class F < B
include E
end
puts ObjectTree.create(D)
output
<M> D
└───── <C> A
├───── <C> B
│ └───── <M> E
│ └───── <C> F
└───── <M> E
└───── <C> C
can use from terminal by using rotree
command.
$ rotree Numeric
Ruby 2.3.3
<C> Numeric
├───── <C> Complex
├───── <C> Float
├───── <C> Integer
│ ├───── <C> Bignum
│ └───── <C> Fixnum
└───── <C> Rational
Ruby 2.4.0
<C> Numeric
├───── <C> Complex
├───── <C> Float
├───── <C> Integer
└───── <C> Rational
you can see unify Fixnum and Bignum into Integer from ruby 2.4.0
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request