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