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
498 def initialize(loaders)
499   @loaders = loaders
500   @index = {}
501   @all_module_loaders = nil
502 end

Public Instance Methods

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

Private Instance Methods

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