Method: YARD::CodeObjects::ClassObject#inheritance_tree

Defined in:
lib/yard/code_objects/class_object.rb

#inheritance_tree(include_mods = false) ⇒ Array<NamespaceObject>

Returns the inheritance tree of the object including self.

Parameters:

  • include_mods (Boolean) (defaults to: false)

    whether or not to include mixins in the inheritance tree.

Returns:


42
43
44
45
46
47
48
49
50
51
52
# File 'lib/yard/code_objects/class_object.rb', line 42

def inheritance_tree(include_mods = false)
  list = (include_mods ? mixins(:instance, :class) : [])
  if superclass.is_a?(Proxy) || superclass.respond_to?(:inheritance_tree)
    list += [superclass] unless superclass == P(:Object) || superclass == P(:BasicObject)
  end
  [self] + list.map do |m|
    next m if m == self
    next m unless m.respond_to?(:inheritance_tree)
    m.inheritance_tree(include_mods)
  end.flatten.uniq
end