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