Class: Puppet::Pops::Loaders::ModuleResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/pops/loaders.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(loaders) ⇒ ModuleResolver

Returns a new instance of ModuleResolver.



337
338
339
340
341
# File 'lib/puppet/pops/loaders.rb', line 337

def initialize(loaders)
  @loaders = loaders
  @index = {}
  @all_module_loaders = nil
end

Instance Method Details

#[](name) ⇒ Object



343
344
345
# File 'lib/puppet/pops/loaders.rb', line 343

def [](name)
  @index[name]
end

#[]=(name, module_data) ⇒ Object



347
348
349
# File 'lib/puppet/pops/loaders.rb', line 347

def []=(name, module_data)
  @index[name] = module_data
end

#all_module_loadersObject



351
352
353
# File 'lib/puppet/pops/loaders.rb', line 351

def all_module_loaders
  @all_module_loaders ||= @index.values.map {|md| md.public_loader }
end

#resolve(module_data) ⇒ Object



355
356
357
358
359
360
361
362
363
364
365
366
# File 'lib/puppet/pops/loaders.rb', line 355

def resolve(module_data)
  if module_data.resolved?
    nil
  else
    module_data.private_loader =
      if module_data.restrict_to_dependencies?
        create_loader_with_only_dependencies_visible(module_data)
      else
        create_loader_with_all_modules_visible(module_data)
      end
  end
end