Class: Puppet::Pops::Loader::LoaderPaths::SmartPaths
- Defined in:
- lib/puppet/pops/loader/loader_paths.rb
Overview
SmartPaths
Holds effective SmartPath instances per type
Instance Method Summary collapse
-
#effective_paths(type) ⇒ Array<SmartPath>
Ensures that the paths for the type have been probed and pruned to what is existing relative to the given root.
-
#initialize(path_based_loader) ⇒ SmartPaths
constructor
A new instance of SmartPaths.
Constructor Details
#initialize(path_based_loader) ⇒ SmartPaths
Returns a new instance of SmartPaths.
384 385 386 387 |
# File 'lib/puppet/pops/loader/loader_paths.rb', line 384 def initialize(path_based_loader) @loader = path_based_loader @smart_paths = {} end |
Instance Method Details
#effective_paths(type) ⇒ Array<SmartPath>
Ensures that the paths for the type have been probed and pruned to what is existing relative to the given root.
395 396 397 398 399 400 401 402 403 404 405 406 407 |
# File 'lib/puppet/pops/loader/loader_paths.rb', line 395 def effective_paths(type) smart_paths = @smart_paths loader = @loader effective_paths = smart_paths[type] unless effective_paths # type not yet processed, does the various directories for the type exist ? # Get the relative dirs for the type paths_for_type = LoaderPaths.relative_paths_for_type(type, loader) # Check which directories exist in the loader's content/index effective_paths = smart_paths[type] = paths_for_type.select { |sp| loader.meaningful_to_search?(sp) } end effective_paths end |