summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorLuke Kanies <luke@reductivelabs.com>2010-01-04 17:02:28 -0800
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commit201889bd30260698478d8469517299b290053189 (patch)
tree8269d03590d76debd568f1b309c58e2e6d0a31b1 /lib/puppet
parent2c2b3c27e242f7ee99354c7d4f0d2a18d5710f49 (diff)
downloadpuppet-201889bd30260698478d8469517299b290053189.tar.gz
puppet-201889bd30260698478d8469517299b290053189.tar.xz
puppet-201889bd30260698478d8469517299b290053189.zip
Renaming LoadedCode to ResourceTypeCollection
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/parser/parser_support.rb20
-rw-r--r--lib/puppet/parser/resource_type_collection.rb (renamed from lib/puppet/parser/loaded_code.rb)20
2 files changed, 28 insertions, 12 deletions
diff --git a/lib/puppet/parser/parser_support.rb b/lib/puppet/parser/parser_support.rb
index 77ee28f5e..652090062 100644
--- a/lib/puppet/parser/parser_support.rb
+++ b/lib/puppet/parser/parser_support.rb
@@ -3,7 +3,7 @@
class Puppet::Parser::Parser
require 'puppet/parser/functions'
require 'puppet/parser/files'
- require 'puppet/parser/loaded_code'
+ require 'puppet/parser/resource_type_collection'
require 'puppet/parser/resource_type'
require 'puppet/dsl'
require 'monitor'
@@ -101,7 +101,7 @@ class Puppet::Parser::Parser
[:hostclass, :definition, :node, :nodes?].each do |method|
define_method(method) do |*args|
- @loaded_code.send(method, *args)
+ @resource_type_collection.send(method, *args)
end
end
@@ -134,7 +134,7 @@ class Puppet::Parser::Parser
names_to_try.compact!
end
- until (result = @loaded_code.send(method, namespace, name)) or names_to_try.empty? do
+ until (result = @resource_type_collection.send(method, namespace, name)) or names_to_try.empty? do
self.load(names_to_try.shift)
end
return result
@@ -174,7 +174,7 @@ class Puppet::Parser::Parser
end
files.collect { |file|
- parser = Puppet::Parser::Parser.new(:loaded_code => @loaded_code, :environment => @environment)
+ parser = Puppet::Parser::Parser.new(:resource_type_collection => @resource_type_collection, :environment => @environment)
parser.files = self.files
Puppet.debug("importing '%s'" % file)
@@ -195,7 +195,7 @@ class Puppet::Parser::Parser
def initialize(options = {})
@environment = options[:environment]
- @loaded_code = options[:loaded_code] || Puppet::Parser::LoadedCode.new(@environment)
+ @resource_type_collection = options[:resource_type_collection] || Puppet::Parser::ResourceTypeCollection.new(@environment)
initvars()
end
@@ -252,7 +252,7 @@ class Puppet::Parser::Parser
end
# We don't know whether we're looking for a class or definition, so we have
# to test for both.
- return @loaded_code.hostclass(classname) || @loaded_code.definition(classname)
+ return @resource_type_collection.hostclass(classname) || @resource_type_collection.definition(classname)
end
# Try to load a class, since we could not find it.
@@ -277,12 +277,12 @@ class Puppet::Parser::Parser
# Create a new class, or merge with an existing class.
def newclass(name, options = {})
- @loaded_code.add Puppet::Parser::ResourceType.new(:hostclass, name, ast_context(true).merge(options))
+ @resource_type_collection.add Puppet::Parser::ResourceType.new(:hostclass, name, ast_context(true).merge(options))
end
# Create a new definition.
def newdefine(name, options = {})
- @loaded_code.add Puppet::Parser::ResourceType.new(:definition, name, ast_context(true).merge(options))
+ @resource_type_collection.add Puppet::Parser::ResourceType.new(:definition, name, ast_context(true).merge(options))
end
# Create a new node. Nodes are special, because they're stored in a global
@@ -291,7 +291,7 @@ class Puppet::Parser::Parser
names = [names] unless names.instance_of?(Array)
context = ast_context(true)
names.collect do |name|
- @loaded_code.add(Puppet::Parser::ResourceType.new(:node, name, context.merge(options)))
+ @resource_type_collection.add(Puppet::Parser::ResourceType.new(:node, name, context.merge(options)))
end
end
@@ -355,7 +355,7 @@ class Puppet::Parser::Parser
# Store the results as the top-level class.
newclass("", :code => main)
end
- return @loaded_code
+ return @resource_type_collection
ensure
@lexer.clear
end
diff --git a/lib/puppet/parser/loaded_code.rb b/lib/puppet/parser/resource_type_collection.rb
index d7f179ae7..c6a91887a 100644
--- a/lib/puppet/parser/loaded_code.rb
+++ b/lib/puppet/parser/resource_type_collection.rb
@@ -1,11 +1,27 @@
-class Puppet::Parser::LoadedCode
- def initialize
+class Puppet::Parser::ResourceTypeCollection
+ attr_reader :environment
+
+ @code = {}
+
+ def self.[]=(environment, code)
+ @code[environment] = code
+ end
+
+ def self.[](environment)
+ @code[environment]
+ end
+
+ def initialize(environment)
+ @environment = environment
@hostclasses = {}
@definitions = {}
@nodes = {}
# So we can keep a list and match the first-defined regex
@node_list = []
+
+ # Store the most recently created code collection globally per environment.
+ self.class[self.environment] = self
end
def <<(thing)