Class: Puppet::Pops::Loader::ModuleLoaders::FileBased Private
- Inherits:
-
AbstractPathBasedModuleLoader
- Object
- Loader
- BaseLoader
- AbstractPathBasedModuleLoader
- Puppet::Pops::Loader::ModuleLoaders::FileBased
- Defined in:
- lib/puppet/pops/loader/module_loaders.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Direct Known Subclasses
Constant Summary
Constants inherited from Loader
Instance Attribute Summary collapse
- #path_index ⇒ Object readonly private
- #smart_paths ⇒ Object readonly private
Attributes inherited from AbstractPathBasedModuleLoader
#module_name, #path, #private_loader
Attributes inherited from BaseLoader
Attributes inherited from Loader
Instance Method Summary collapse
- #add_to_index(smart_path) ⇒ Object private
- #existing_path(effective_path) ⇒ Object private
- #get_contents(effective_path) ⇒ Object private
-
#initialize(parent_loader, loaders, module_name, path, loader_name, loadables = LOADABLE_KINDS) ⇒ FileBased
constructor
private
Create a kind of ModuleLoader for one module (Puppet Module, or module like).
- #meaningful_to_search?(smart_path) ⇒ Boolean private
- #to_s ⇒ Object private
Methods inherited from AbstractPathBasedModuleLoader
#find, #get_source_ref, #global?, #loadables
Methods inherited from BaseLoader
#add_entry, #get_entry, #load_typed, #loaded_entry, #promote_entry, #remove_entry, #set_entry
Methods inherited from Loader
#[], #find, #get_entry, #inspect, #load, #load_typed, #loadables, #loaded_entry, #parent, #private_loader, #set_entry
Constructor Details
#initialize(parent_loader, loaders, module_name, path, loader_name, loadables = LOADABLE_KINDS) ⇒ FileBased
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Create a kind of ModuleLoader for one module (Puppet Module, or module like)
292 293 294 295 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 292 def initialize(parent_loader, loaders, module_name, path, loader_name, loadables = LOADABLE_KINDS) super @path_index = Set.new() end |
Instance Attribute Details
#path_index ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
283 284 285 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 283 def path_index @path_index end |
#smart_paths ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
282 283 284 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 282 def smart_paths @smart_paths end |
Instance Method Details
#add_to_index(smart_path) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
310 311 312 313 314 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 310 def add_to_index(smart_path) found = Dir.glob(File.join(smart_path.generic_path, '**', "*#{smart_path.extension}")) @path_index.merge(found) found end |
#existing_path(effective_path) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
297 298 299 300 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 297 def existing_path(effective_path) # Optimized, checks index instead of visiting file system @path_index.include?(effective_path) ? effective_path : nil end |
#get_contents(effective_path) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
316 317 318 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 316 def get_contents(effective_path) Puppet::FileSystem.read(effective_path, :encoding => 'utf-8') end |
#meaningful_to_search?(smart_path) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
302 303 304 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 302 def meaningful_to_search?(smart_path) ! add_to_index(smart_path).empty? end |
#to_s ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
306 307 308 |
# File 'lib/puppet/pops/loader/module_loaders.rb', line 306 def to_s() "(ModuleLoader::FileBased '#{loader_name()}' '#{module_name()}')" end |