class Puppet::Pops::Loaders::ModuleResolver

Resolves module loaders - resolution of model dependencies is done by Puppet::Module

Public Class Methods

new(loaders) click to toggle source
    # File lib/puppet/pops/loaders.rb
503 def initialize(loaders)
504   @loaders = loaders
505   @index = {}
506   @all_module_loaders = nil
507 end

Public Instance Methods

[](name) click to toggle source
    # File lib/puppet/pops/loaders.rb
509 def [](name)
510   @index[name]
511 end
[]=(name, module_data) click to toggle source
    # File lib/puppet/pops/loaders.rb
513 def []=(name, module_data)
514   @index[name] = module_data
515 end
all_module_loaders() click to toggle source
    # File lib/puppet/pops/loaders.rb
517 def all_module_loaders
518   @all_module_loaders ||= @index.values.map {|md| md.public_loader }
519 end
resolve(module_data) click to toggle source
    # File lib/puppet/pops/loaders.rb
521 def resolve(module_data)
522   if module_data.resolved?
523     nil
524   else
525     module_data.private_loader =
526       if module_data.restrict_to_dependencies?
527         create_loader_with_dependencies_first(module_data)
528       else
529         create_loader_with_all_modules_visible(module_data)
530       end
531   end
532 end

Private Instance Methods

create_loader_with_all_modules_visible(from_module_data) click to toggle source
    # File lib/puppet/pops/loaders.rb
536 def create_loader_with_all_modules_visible(from_module_data)
537   @loaders.add_loader_by_name(Loader::DependencyLoader.new(from_module_data.public_loader, "#{from_module_data.name} private", all_module_loaders(), @loaders.environment))
538 end
create_loader_with_dependencies_first(from_module_data) click to toggle source
    # File lib/puppet/pops/loaders.rb
540 def create_loader_with_dependencies_first(from_module_data)
541   dependency_loaders = from_module_data.dependency_names.collect { |name| @index[name].public_loader }
542   visible_loaders = dependency_loaders + (all_module_loaders() - dependency_loaders)
543   @loaders.add_loader_by_name(Loader::DependencyLoader.new(from_module_data.public_loader, "#{from_module_data.name} private", visible_loaders, @loaders.environment))
544 end