summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/parser/loaded_code.rb6
-rw-r--r--lib/puppet/util/rdoc/parser.rb6
-rw-r--r--spec/unit/parser/loaded_code.rb7
3 files changed, 16 insertions, 3 deletions
diff --git a/lib/puppet/parser/loaded_code.rb b/lib/puppet/parser/loaded_code.rb
index 7c918d4c3..6c519613f 100644
--- a/lib/puppet/parser/loaded_code.rb
+++ b/lib/puppet/parser/loaded_code.rb
@@ -65,6 +65,12 @@ class Puppet::Parser::LoadedCode
find(namespace, name, :definition)
end
+ [:hostclasses, :nodes, :definitions].each do |m|
+ define_method(m) do
+ instance_variable_get("@#{m}").dup
+ end
+ end
+
private
def find_fully_qualified(name, type)
diff --git a/lib/puppet/util/rdoc/parser.rb b/lib/puppet/util/rdoc/parser.rb
index 1d4fa966a..7954865f8 100644
--- a/lib/puppet/util/rdoc/parser.rb
+++ b/lib/puppet/util/rdoc/parser.rb
@@ -281,7 +281,7 @@ class Parser
# that contains the documentation
def parse_elements(container)
Puppet.debug "rdoc: scanning manifest"
- @ast[:classes].values.sort { |a,b| a.classname <=> b.classname }.each do |klass|
+ @ast.hostclasses.values.sort { |a,b| a.classname <=> b.classname }.each do |klass|
name = klass.classname
if klass.file == @input_file_name
unless name.empty?
@@ -294,13 +294,13 @@ class Parser
end
end
- @ast[:definitions].each do |name, define|
+ @ast.definitions.each do |name, define|
if define.file == @input_file_name
document_define(name,define,container)
end
end
- @ast[:nodes].each do |name, node|
+ @ast.nodes.each do |name, node|
if node.file == @input_file_name
document_node(name,node,container)
end
diff --git a/spec/unit/parser/loaded_code.rb b/spec/unit/parser/loaded_code.rb
index 50f6b930c..d2986bf2c 100644
--- a/spec/unit/parser/loaded_code.rb
+++ b/spec/unit/parser/loaded_code.rb
@@ -25,6 +25,13 @@ describe Puppet::Parser::LoadedCode do
it "should return nil when asked for a #{data} that has not been added" do
Puppet::Parser::LoadedCode.new.send(data, "foo").should be_nil
end
+
+ it "should be able to retrieve all #{data}s" do
+ plurals = { "hostclass" => "hostclasses", "node" => "nodes", "definition" => "definitions" }
+ loader = Puppet::Parser::LoadedCode.new
+ loader.send("add_" + data , "foo", "bar")
+ loader.send(plurals[data]).should == { "foo" => "bar" }
+ end
end
describe "when finding a qualified instance" do