diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-05-07 22:29:44 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-05-07 22:29:44 +0000 |
commit | 1decfa31a588bc46249c89680c80f74e14183ab1 (patch) | |
tree | 0f67d5aa595bb8763ac889db7327f90482b11909 /lib/puppet/util/subclass_loader.rb | |
parent | 69cb72120ced589b81038f685f9765ceb353e062 (diff) | |
download | puppet-1decfa31a588bc46249c89680c80f74e14183ab1.tar.gz puppet-1decfa31a588bc46249c89680c80f74e14183ab1.tar.xz puppet-1decfa31a588bc46249c89680c80f74e14183ab1.zip |
Lots of work related to generating more reference. Moving all of the individual references out of puppetdoc and into an external "reference" class, which itself can autoload, so it is now easy to add new types of references. Also adding a network reference, along with an unfinished provider reference.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2479 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/util/subclass_loader.rb')
-rw-r--r-- | lib/puppet/util/subclass_loader.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/puppet/util/subclass_loader.rb b/lib/puppet/util/subclass_loader.rb index 4f24d5544..00f011d03 100644 --- a/lib/puppet/util/subclass_loader.rb +++ b/lib/puppet/util/subclass_loader.rb @@ -1,6 +1,8 @@ # A module for loading subclasses into an array and retrieving # them by name. Also sets up a method for each class so # that you can just do Klass.subclass, rather than Klass.subclass(:subclass). +# +# This module is currently used by network handlers and clients. module Puppet::Util::SubclassLoader attr_accessor :loader, :classloader @@ -48,7 +50,6 @@ module Puppet::Util::SubclassLoader # subclasses, thus the reason we're keeping track of the @@classloader. def inherited(sub) @subclasses ||= [] - @subclasses << sub sub.classloader = self.classloader if self.classloader == self @subclasses << sub @@ -78,6 +79,12 @@ module Puppet::Util::SubclassLoader return @name end + + # Provide a list of all subclasses. + def subclasses + @loader.loadall + @subclasses.collect { |klass| klass.name } + end end # $Id$ |