diff options
Diffstat (limited to 'lib/puppet/parser/parser_support.rb')
-rw-r--r-- | lib/puppet/parser/parser_support.rb | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/lib/puppet/parser/parser_support.rb b/lib/puppet/parser/parser_support.rb index 3b0b1916d..ac26ca71a 100644 --- a/lib/puppet/parser/parser_support.rb +++ b/lib/puppet/parser/parser_support.rb @@ -4,11 +4,14 @@ class Puppet::Parser::Parser require 'puppet/parser/functions' require 'puppet/parser/files' require 'puppet/parser/resource_type_collection' + require 'puppet/parser/resource_type_collection_helper' require 'puppet/parser/resource_type' require 'monitor' AST = Puppet::Parser::AST + include Puppet::Parser::ResourceTypeCollectionHelper + attr_reader :version, :environment attr_accessor :files @@ -91,7 +94,7 @@ class Puppet::Parser::Parser raise Puppet::Error, "Could not find file %s" % file end end - raise Puppet::AlreadyImportedError, "Import loop detected" if resource_type_collection.watching_file?(file) + raise Puppet::AlreadyImportedError, "Import loop detected" if known_resource_types.watching_file?(file) watch_file(file) @lexer.file = file @@ -99,7 +102,7 @@ class Puppet::Parser::Parser [:hostclass, :definition, :node, :nodes?].each do |method| define_method(method) do |*args| - resource_type_collection.send(method, *args) + known_resource_types.send(method, *args) end end @@ -132,7 +135,7 @@ class Puppet::Parser::Parser names_to_try.compact! end - until (result = resource_type_collection.send(method, namespace, name)) or names_to_try.empty? do + until (result = known_resource_types.send(method, namespace, name)) or names_to_try.empty? do self.load(names_to_try.shift) end return result @@ -252,7 +255,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 resource_type_collection.hostclass(classname) || resource_type_collection.definition(classname) + return known_resource_types.hostclass(classname) || known_resource_types.definition(classname) end # Try to load a class, since we could not find it. @@ -277,12 +280,12 @@ class Puppet::Parser::Parser # Create a new class, or merge with an existing class. def newclass(name, options = {}) - resource_type_collection.add Puppet::Parser::ResourceType.new(:hostclass, name, ast_context(true).merge(options)) + known_resource_types.add Puppet::Parser::ResourceType.new(:hostclass, name, ast_context(true).merge(options)) end # Create a new definition. def newdefine(name, options = {}) - resource_type_collection.add Puppet::Parser::ResourceType.new(:definition, name, ast_context(true).merge(options)) + known_resource_types.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 +294,7 @@ class Puppet::Parser::Parser names = [names] unless names.instance_of?(Array) context = ast_context(true) names.collect do |name| - resource_type_collection.add(Puppet::Parser::ResourceType.new(:node, name, context.merge(options))) + known_resource_types.add(Puppet::Parser::ResourceType.new(:node, name, context.merge(options))) end end @@ -355,7 +358,7 @@ class Puppet::Parser::Parser # Store the results as the top-level class. newclass("", :code => main) end - return resource_type_collection + return known_resource_types ensure @lexer.clear end @@ -377,19 +380,15 @@ class Puppet::Parser::Parser @lexer.string = string end - def resource_type_collection - environment.known_resource_types - end - def version - resource_type_collection.version + known_resource_types.version end # Add a new file to be checked when we're checking to see if we should be # reparsed. This is basically only used by the TemplateWrapper to let the # parser know about templates that should be parsed. def watch_file(filename) - resource_type_collection.watch_file(filename) + known_resource_types.watch_file(filename) end private |