summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-07 22:29:44 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-07 22:29:44 +0000
commit1decfa31a588bc46249c89680c80f74e14183ab1 (patch)
tree0f67d5aa595bb8763ac889db7327f90482b11909 /lib/puppet/util
parent69cb72120ced589b81038f685f9765ceb353e062 (diff)
downloadpuppet-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.rb6
-rw-r--r--lib/puppet/util/reference.rb7
-rw-r--r--lib/puppet/util/subclass_loader.rb9
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$