Rubyでオブジェクトのスーパークラスを遡って取得する
Rubyでクラスの親クラスを取得するには、Class#superclassを使えばよいという事を知った。 なので、BasicObjectまで遡れば継承している全ての親クラスを取得することができる。
``` ruby class Foo end
class Bar < Foo end
class Hoge < Bar end
class Class def all_superclass def recur(c, a) return !c.superclass ? a : recur(c.superclass, a.push(c.superclass)) end recur(self, []) end end
p Hoge.all_superclass ```
実行結果はこう。
`sh
$ ruby ./get_all_superclass.rb
[Bar, Foo, Object, BasicObject]`
任意のクラスを継承しているか判別するのに使えると思う。