module Launchy::DescendantTracker - launchy-2.4.3 Documentation

# module Launchy::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/launchy/descendant_tracker.rb, line 31
    def children
      unless defined? @children
        @children = Array.new
      end
      return @children
    end

find_child( method, *args ) click to toggle source

Find one of the child classes by calling the given method and passing all the rest of the parameters to that method in each child

    # File lib/launchy/descendant_tracker.rb, line 42
    def find_child( method, *args )
      children.find do |child|
        Launchy.log "Checking if class #{child} is the one for #{method}(#{args.join(', ')})}"
        child.send( method, *args )
      end
    end

inherited( klass ) click to toggle source

    # File lib/launchy/descendant_tracker.rb, line 23
    def inherited( klass )
      return unless klass.instance_of?( Class )
      self.children << klass
    end