inheritance_tracking.rb 452B

    module InheritanceTracking extend ActiveSupport::Concern module ClassMethods def inherited(subclass) @subclasses ||= [] @subclasses << subclass @subclasses.uniq! super end def subclasses @subclasses end def with_subclasses(*subclasses) original_subclasses = @subclasses @subclasses = subclasses.flatten yield ensure @subclasses = original_subclasses end end end