Implement inheritance tree for host classes
Documentation pages for host classes now show the full inheritance tree instead of just the immediate parent.
This commit is contained in:
parent
d8bc2f3dce
commit
787fca8ebc
|
@ -33,5 +33,20 @@ module Puppetx::Yardoc::YARD::CodeObjects
|
||||||
yield(obj) if block_given?
|
yield(obj) if block_given?
|
||||||
obj
|
obj
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def inheritance_tree
|
||||||
|
if parent_class.is_a?(HostClassObject)
|
||||||
|
# Cool. We got a host class. Return self + parent inheritance tree.
|
||||||
|
[self] + parent_class.inheritance_tree
|
||||||
|
elsif parent_class.is_a?(YARD::CodeObjects::Proxy)
|
||||||
|
# We have a reference to a parent that has not been created yet. Just
|
||||||
|
# return it.
|
||||||
|
[self, parent_class]
|
||||||
|
else
|
||||||
|
# Most likely no parent class. But also possibly an object that we
|
||||||
|
# shouldn't inherit from. Just return self.
|
||||||
|
[self]
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,8 +3,13 @@
|
||||||
<% if object.parent_class %>
|
<% if object.parent_class %>
|
||||||
<dt class="r<%=n%>">Inherits:</dt>
|
<dt class="r<%=n%>">Inherits:</dt>
|
||||||
<dd class="r<%=n%>">
|
<dd class="r<%=n%>">
|
||||||
<span class="inheritName"><%= linkify object.parent_class %></span>
|
<span class="inheritName"><%= linkify object.parent_class, object.parent_class.path %></span>
|
||||||
<%# TODO: Add inheritance tree. %>
|
<ul class="fullTree">
|
||||||
|
<% object.inheritance_tree.reverse.each_with_index do |obj, i| %>
|
||||||
|
<li class="next"><%= obj == object ? obj.path : linkify(obj, obj.path) %></li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
<a href="#" class="inheritanceTree">show all</a>
|
||||||
</dd>
|
</dd>
|
||||||
<% n = 2 %>
|
<% n = 2 %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
Loading…
Reference in New Issue