class Puppet::Pops::Loader::LoaderPaths::TaskPath

TaskPath is like PuppetSmartPath but it does not use an extension and may match more than one path with one name

Constants

FORBIDDEN_EXTENSIONS
TASKS_PATH

Public Instance Methods

extension() click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
240 def extension
241   EMPTY_STRING
242 end
fuzzy_matching?() click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
244 def fuzzy_matching?
245   true
246 end
instantiator() click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
270 def instantiator
271   require_relative 'task_instantiator'
272   TaskInstantiator
273 end
is_task_name?(name) click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
284 def is_task_name?(name)
285   !!(name =~ /^[a-z][a-z0-9_]*$/)
286 end
relative_path() click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
248 def relative_path
249   TASKS_PATH
250 end
typed_name(type, name_authority, relative_path, module_name) click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
252 def typed_name(type, name_authority, relative_path, module_name)
253   n = ''
254   n << module_name unless module_name.nil?
255 
256   # Remove the file extension, defined as everything after the *last* dot.
257   relative_path = relative_path.sub(%r{\.[^/.]*\z}, '')
258 
259   if relative_path == 'init' && !(module_name.nil? || module_name.empty?)
260     TypedName.new(type, module_name, name_authority)
261   else
262     relative_path.split('/').each do |segment|
263       n << '::' if n.size > 0
264       n << segment
265     end
266     TypedName.new(type, n, name_authority)
267   end
268 end
valid_name?(typed_name) click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
275 def valid_name?(typed_name)
276   # TODO: Remove when PE has proper namespace handling
277   typed_name.name_parts.size <= 2
278 end
valid_path?(path) click to toggle source
    # File lib/puppet/pops/loader/loader_paths.rb
280 def valid_path?(path)
281   path.start_with?(generic_path) && is_task_name?(File.basename(path, '.*')) && !FORBIDDEN_EXTENSIONS.any? { |ext| path.end_with?(ext) }
282 end