class Puppet::Pops::Loader::GenericPlanInstantiator
The GenericPlanInstantiator
dispatches to either PuppetPlanInstantiator
or a yaml_plan_instantiator injected through the Puppet
context, depending on the type of the plan.
Public Class Methods
create(loader, typed_name, source_refs)
click to toggle source
# File lib/puppet/pops/loader/generic_plan_instantiator.rb 8 def self.create(loader, typed_name, source_refs) 9 if source_refs.length > 1 10 raise ArgumentError, _("Found multiple files for plan '%{plan_name}' but only one is allowed") % { plan_name: typed_name.name } 11 end 12 13 source_ref = source_refs[0] 14 code_string = Puppet::FileSystem.read(source_ref, :encoding => 'utf-8') 15 16 instantiator = if source_ref.end_with?('.pp') 17 Puppet::Pops::Loader::PuppetPlanInstantiator 18 else 19 Puppet.lookup(:yaml_plan_instantiator) do 20 raise Puppet::DevError, _("No instantiator is available to load plan from %{source_ref}") % { source_ref: source_ref } 21 end 22 end 23 24 instantiator.create(loader, typed_name, source_ref, code_string) 25 end