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 | |
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')
-rw-r--r-- | lib/puppet/util/provider_features.rb | 6 | ||||
-rw-r--r-- | lib/puppet/util/reference.rb | 7 | ||||
-rw-r--r-- | lib/puppet/util/subclass_loader.rb | 9 |
3 files changed, 20 insertions, 2 deletions
diff --git a/lib/puppet/util/provider_features.rb b/lib/puppet/util/provider_features.rb index 060026bb9..c8edd52ec 100644 --- a/lib/puppet/util/provider_features.rb +++ b/lib/puppet/util/provider_features.rb @@ -100,6 +100,12 @@ module Puppet::Util::ProviderFeatures str end + # Return a list of features. + def features + @features ||= {} + @features.keys + end + # Generate a module that sets up the boolean methods to test for given # features. def feature_module diff --git a/lib/puppet/util/reference.rb b/lib/puppet/util/reference.rb index 3b1d7dd94..980baef4d 100644 --- a/lib/puppet/util/reference.rb +++ b/lib/puppet/util/reference.rb @@ -3,6 +3,7 @@ require 'puppet/util/instance_loader' # Manage Reference Documentation. class Puppet::Util::Reference include Puppet::Util + include Puppet::Util::Docs extend Puppet::Util::InstanceLoader @@ -85,7 +86,7 @@ class Puppet::Util::Reference end def h(name, level) - return "%s\n%s\n" % [name, HEADER_LEVELS[level] * name.to_s.length] + return "%s\n%s\n\n" % [name, HEADER_LEVELS[level] * name.to_s.length] end def initialize(name, options = {}, &block) @@ -108,6 +109,10 @@ class Puppet::Util::Reference return text.gsub(/(^|\A)/, tab).gsub(/^ +\.\./, "..") end + def option(name, value) + ":%s: %s\n" % [name.to_s.capitalize, value] + end + def paramwrap(name, text, options = {}) options[:level] ||= 5 #str = "%s : " % name 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$ |