Module: MoreCoreExtensions::ClassHierarchy
- Defined in:
- lib/more_core_extensions/core_ext/class/hierarchy.rb
Instance Method Summary collapse
-
#hierarchy ⇒ Object
Returns a tree-like Hash structure of all descendants.
-
#lineage ⇒ Object
Returns an Array of all superclasses.
Instance Method Details
#hierarchy ⇒ Object
Returns a tree-like Hash structure of all descendants.
require 'socket'
IO.hierarchy
# => {BasicSocket=>
# {Socket=>{},
# IPSocket=>{TCPSocket=>{TCPServer=>{}}, UDPSocket=>{}},
# UNIXSocket=>{UNIXServer=>{}}},
# File=>{}}
15 16 17 |
# File 'lib/more_core_extensions/core_ext/class/hierarchy.rb', line 15 def hierarchy subclasses.each_with_object({}) { |k, h| h[k] = k.hierarchy } end |
#lineage ⇒ Object
Returns an Array of all superclasses.
require 'socket'
TCPServer.lineage
# => [TCPSocket, IPSocket, BasicSocket, IO, Object, BasicObject]
24 25 26 |
# File 'lib/more_core_extensions/core_ext/class/hierarchy.rb', line 24 def lineage superclass.nil? ? [] : superclass.lineage.unshift(superclass) end |