summaryrefslogtreecommitdiffstats
path: root/lib/puppet/network/handler
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-07 18:59:40 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-07 18:59:40 +0000
commitf42a755cc2e4bc77880dec9571ccd11f33f2737f (patch)
tree733e1c1681b9c325f269da81ab5faf1f58494a67 /lib/puppet/network/handler
parent53f16125761400df4fb1b99159c6b3bab8f5f397 (diff)
downloadpuppet-f42a755cc2e4bc77880dec9571ccd11f33f2737f.tar.gz
puppet-f42a755cc2e4bc77880dec9571ccd11f33f2737f.tar.xz
puppet-f42a755cc2e4bc77880dec9571ccd11f33f2737f.zip
Adding a module to abstract using Autoload to load and manage instances
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2476 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/network/handler')
-rwxr-xr-xlib/puppet/network/handler/report.rb32
1 files changed, 8 insertions, 24 deletions
diff --git a/lib/puppet/network/handler/report.rb b/lib/puppet/network/handler/report.rb
index 574970fc4..e21acb810 100755
--- a/lib/puppet/network/handler/report.rb
+++ b/lib/puppet/network/handler/report.rb
@@ -1,7 +1,10 @@
+require 'puppet/util/instance_loader'
+
# A simple server for triggering a new run on a Puppet client.
class Puppet::Network::Handler
class Report < Handler
extend Puppet::Util::ClassGen
+ extend Puppet::Util::InstanceLoader
module ReportBase
include Puppet::Util::Docs
@@ -20,8 +23,8 @@ class Puppet::Network::Handler
iface.add_method("string report(array)")
}
- @reports = {}
- @reportloader = Puppet::Util::Autoload.new(self, "puppet/reports")
+ # Set up autoloading and retrieving of reports.
+ autoload :report, 'puppet/reports'
class << self
attr_reader :hooks
@@ -31,7 +34,7 @@ class Puppet::Network::Handler
def self.newreport(name, options = {}, &block)
name = symbolize(name)
- mod = genmodule(name, :extend => ReportBase, :hash => @reports, :block => block)
+ mod = genmodule(name, :extend => ReportBase, :hash => instance_hash(:report), :block => block)
if options[:useyaml]
mod.useyaml = true
@@ -42,31 +45,12 @@ class Puppet::Network::Handler
end
end
- # Load a report.
- def self.report(name)
- name = name.intern if name.is_a? String
- unless @reports.include? name
- if @reportloader.load(name)
- unless @reports.include? name
- Puppet.warning(
- "Loaded report file for %s but report was not defined" %
- name
- )
- return nil
- end
- else
- return nil
- end
- end
- @reports[symbolize(name)]
- end
-
# Collect the docs for all of our reports.
def self.reportdocs
docs = ""
# Use this method so they all get loaded
- reports.sort { |a,b| a.to_s <=> b.to_s }.each do |name|
+ loaded_instances(:report).sort { |a,b| a.to_s <=> b.to_s }.each do |name|
mod = self.report(name)
docs += "%s\n%s\n" % [name, "-" * name.to_s.length]
@@ -78,7 +62,7 @@ class Puppet::Network::Handler
# List each of the reports.
def self.reports
- @reportloader.loadall
+ instance_loader(:report).loadall
@reports.keys
end