Class: Climatic::LayersManager
- Inherits:
-
SuperStack::Manager
- Object
- SuperStack::Manager
- Climatic::LayersManager
- Includes:
- ConfigLayers::ProgramDescriptionHelper
- Defined in:
- lib/climatic/layers_manager.rb
Instance Attribute Summary collapse
-
#command_line_layer ⇒ Object
readonly
Returns the value of attribute command_line_layer.
-
#env_layer ⇒ Object
readonly
Returns the value of attribute env_layer.
-
#executable_gem_layer ⇒ Object
readonly
Returns the value of attribute executable_gem_layer.
-
#global_layer ⇒ Object
readonly
Returns the value of attribute global_layer.
-
#project_layer ⇒ Object
readonly
Returns the value of attribute project_layer.
-
#provided_config_file_layer ⇒ Object
readonly
Returns the value of attribute provided_config_file_layer.
-
#system_layer ⇒ Object
readonly
Returns the value of attribute system_layer.
-
#user_layer ⇒ Object
readonly
Returns the value of attribute user_layer.
Attributes included from ConfigLayers::ProgramDescriptionHelper
#app_description, #app_name, #app_version, #config_file_base_name
Class Method Summary collapse
Instance Method Summary collapse
- #include_env_layer(filter = nil, priority = 70) ⇒ Object
- #include_gem_layer_for(gem_name, priority = 30) ⇒ Object
- #include_project_layer(file_or_directory, project_file_basename = nil, priority = 65) ⇒ Object
-
#initialize ⇒ LayersManager
constructor
A new instance of LayersManager.
Methods included from ConfigLayers::ProgramDescriptionHelper
#add_command_line_section, #command_line_help, #describes_application, #detailed_config_files_info, #detailed_layers_info, #rescan_layers
Constructor Details
#initialize ⇒ LayersManager
Returns a new instance of LayersManager.
9 10 11 12 13 |
# File 'lib/climatic/layers_manager.rb', line 9 def initialize super self.merge_policy = SuperStack::MergePolicies::FullMergePolicy setup_layers end |
Instance Attribute Details
#command_line_layer ⇒ Object (readonly)
Returns the value of attribute command_line_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def command_line_layer @command_line_layer end |
#env_layer ⇒ Object (readonly)
Returns the value of attribute env_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def env_layer @env_layer end |
#executable_gem_layer ⇒ Object (readonly)
Returns the value of attribute executable_gem_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def executable_gem_layer @executable_gem_layer end |
#global_layer ⇒ Object (readonly)
Returns the value of attribute global_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def global_layer @global_layer end |
#project_layer ⇒ Object (readonly)
Returns the value of attribute project_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def project_layer @project_layer end |
#provided_config_file_layer ⇒ Object (readonly)
Returns the value of attribute provided_config_file_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def provided_config_file_layer @provided_config_file_layer end |
#system_layer ⇒ Object (readonly)
Returns the value of attribute system_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def system_layer @system_layer end |
#user_layer ⇒ Object (readonly)
Returns the value of attribute user_layer.
6 7 8 |
# File 'lib/climatic/layers_manager.rb', line 6 def user_layer @user_layer end |
Class Method Details
.default_config_file_base_name ⇒ Object
16 17 18 |
# File 'lib/climatic/layers_manager.rb', line 16 def self.default_config_file_base_name File.basename($PROGRAM_NAME).gsub /\.[^\.]+$/, '' end |
Instance Method Details
#include_env_layer(filter = nil, priority = 70) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/climatic/layers_manager.rb', line 27 def include_env_layer(filter = nil, priority = 70) @env_layer = Climatic::ConfigLayers::EnvLayer.new filter env_layer.name = 'Environment variables level' env_layer.priority = priority self << env_layer end |
#include_gem_layer_for(gem_name, priority = 30) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/climatic/layers_manager.rb', line 34 def include_gem_layer_for(gem_name, priority = 30) gem_layer = Climatic::ConfigLayers::GemLayer.new gem_layer.gem_name = gem_name raise "No config found in gem #{gem_name}" if gem_layer.file_name.nil? gem_layer.name = "#{gem_name} Gem configuration level" gem_layer.priority = priority self << gem_layer end |
#include_project_layer(file_or_directory, project_file_basename = nil, priority = 65) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/climatic/layers_manager.rb', line 20 def include_project_layer(file_or_directory, project_file_basename=nil, priority = 65) @project_layer = Climatic::ConfigLayers::ProjectLayer.new file_or_directory, project_file_basename project_layer.name = 'Project level' project_layer.priority = priority self << project_layer end |