module DescendantsTracker

def add_descendant(descendant)

Other tags:
    Api: - private

Returns:
  • (self) -

Parameters:
  • descendant (Class) --
def add_descendant(descendant)
  superclass = self.superclass
  superclass.add_descendant(descendant) if superclass.respond_to?(:add_descendant)
  descendants.unshift(descendant)
  self
end

def descendants

Other tags:
    Api: - private

Returns:
  • (Array) -
def descendants
  @descendants ||= []
end

def inherited(descendant)

Other tags:
    Api: - private

Returns:
  • (undefined) -

Parameters:
  • descendant (Class) --
def inherited(descendant)
  super
  add_descendant(descendant)
end