ActiveSupport::DescendantsTracker (original) (raw)

Active Support Descendants Tracker

This module provides an internal implementation to track descendants which is faster than iterating through ObjectSpace.

However Ruby 3.1 provide a fast native +Class#subclasses+ method, so if you know your code won’t be executed on older rubies, including ActiveSupport::DescendantsTracker does not provide any benefit.

Methods

D

S

Class Public methods

Source: show | on GitHub

def descendants(klass) klass.descendants end

Source: show | on GitHub

def subclasses(klass) klass.subclasses end

Instance Public methods

Source: show | on GitHub

def descendants subclasses = DescendantsTracker.reject!(self.subclasses) subclasses.concat(subclasses.flat_map(&:descendants)) end