Method: Puppet::Pops::Loaders.register_implementations_with_loader

Defined in:
lib/puppet/pops/loaders.rb

.register_implementations_with_loader(obj_classes, name_authority, loader) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



130
131
132
133
134
135
136
137
138
139
140
# File 'lib/puppet/pops/loaders.rb', line 130

def self.register_implementations_with_loader(obj_classes, name_authority, loader)
  types = obj_classes.map do |obj_class|
    type = obj_class._pcore_type
    typed_name = Loader::TypedName.new(:type, type.name, name_authority)
    entry = loader.loaded_entry(typed_name)
    loader.set_entry(typed_name, type) if entry.nil? || entry.value.nil?
    type
  end
  # Resolve lazy so that all types can cross reference each other
  types.each { |type| type.resolve(loader) }
end