Sha256: 8369b4f99b5e4ef0c108342d2e8f36805d7bb4859a12766efaa51be9d9511208
Contents?: true
Size: 905 Bytes
Versions: 15
Compression:
Stored size: 905 Bytes
Contents
module Virtus # A module that adds descendant tracking to a class module DescendantsTracker # Return the descendants of this class # # @return [Array<Class>] # # @api private def descendants @descendants ||= [] end # Add the descendant to this class and the superclass # # @param [Class] descendant # # @return [self] # # @api private def add_descendant(descendant) superclass = self.superclass superclass.add_descendant(descendant) if superclass.respond_to?(:add_descendant) descendants.unshift(descendant) self end private # Hook called when class is inherited # # @param [Class] descendant # # @return [undefined] # # @api private def inherited(descendant) super add_descendant(descendant) end end # module DescendantsTracker end # module Virtus
Version data entries
15 entries across 15 versions & 2 rubygems