123456789101112131415161718192021222324 |
- 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
|