module HTAuth::DescendantTracker
Use by either
class Foo extend DescendantTracker end
or
class Foo class << self include DescendantTracker end end
It will track all the classes that inherit from the extended class and keep them in a Set that is available via the 'children' method.
Public Instance Methods
children()
click to toggle source
The list of children that are registered
# File lib/htauth/descendant_tracker.rb, line 29 def children unless defined? @children @children = Array.new end return @children end
find_child( method, *args )
click to toggle source
find the child that returns truthy for then given method and parameters
# File lib/htauth/descendant_tracker.rb, line 40 def find_child( method, *args ) children.find do |child| child.send( method, *args ) end end
inherited( klass )
click to toggle source
# File lib/htauth/descendant_tracker.rb, line 21 def inherited( klass ) return unless klass.instance_of?( Class ) self.children << klass end