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