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.
170 171 172 173 |
# File 'lib/puppet/pops/loader/loader_paths.rb', line 170 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.
181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/puppet/pops/loader/loader_paths.rb', line 181 def effective_paths(type) smart_paths = @smart_paths loader = @loader unless effective_paths = smart_paths[type] # type not yet processed, does the various directories for the type exist ? # Get the relative dirs for the type paths_for_type = Puppet::Pops::Loader::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 |