Class: Puppet::Pops::Loader::LoaderPaths::TaskPath
Overview
TaskPath is like PuppetSmartPath but it does not use an extension and may match more than one path with one name
Constant Summary
collapse
- TASKS_PATH =
'tasks'.freeze
- FORBIDDEN_EXTENSIONS =
%w{.conf .md}.freeze
PuppetSmartPath::EXTENSION
Instance Method Summary
collapse
#effective_path
Methods inherited from SmartPath
#effective_path, #generic_path, #initialize, #lib_root?, #root_path
Instance Method Details
#extension ⇒ Object
238
239
240
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 238
def extension
EMPTY_STRING
end
|
#fuzzy_matching? ⇒ Boolean
242
243
244
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 242
def fuzzy_matching?
true
end
|
#instantiator ⇒ Object
268
269
270
271
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 268
def instantiator
require_relative 'task_instantiator'
TaskInstantiator
end
|
#is_task_name?(name) ⇒ Boolean
282
283
284
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 282
def is_task_name?(name)
!!(name =~ /^[a-z][a-z0-9_]*$/)
end
|
#relative_path ⇒ Object
246
247
248
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 246
def relative_path
TASKS_PATH
end
|
#typed_name(type, name_authority, relative_path, module_name) ⇒ Object
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 250
def typed_name(type, name_authority, relative_path, module_name)
n = ''
n << module_name unless module_name.nil?
relative_path = relative_path.sub(%r{\.[^/.]*\z}, '')
if relative_path == 'init' && !(module_name.nil? || module_name.empty?)
TypedName.new(type, module_name, name_authority)
else
relative_path.split('/').each do |segment|
n << '::' if n.size > 0
n << segment
end
TypedName.new(type, n, name_authority)
end
end
|
#valid_name?(typed_name) ⇒ Boolean
273
274
275
276
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 273
def valid_name?(typed_name)
typed_name.name_parts.size <= 2
end
|
#valid_path?(path) ⇒ Boolean
278
279
280
|
# File 'lib/puppet/pops/loader/loader_paths.rb', line 278
def valid_path?(path)
path.start_with?(generic_path) && is_task_name?(File.basename(path, '.*')) && !FORBIDDEN_EXTENSIONS.any? { |ext| path.end_with?(ext) }
end
|