class StackedConfig::Orchestrator
Attributes
command_line_layer[R]
env_layer[R]
executable_gem_layer[R]
global_layer[R]
project_layer[R]
provided_config_file_layer[R]
system_layer[R]
user_layer[R]
Public Class Methods
default_config_file_base_name()
click to toggle source
# File lib/stacked_config/orchestrator.rb, line 18 def self.default_config_file_base_name File.basename($PROGRAM_NAME).gsub /\.[^\.]+$/, '' end
new()
click to toggle source
Calls superclass method
# File lib/stacked_config/orchestrator.rb, line 9 def initialize super self.merge_policy = SuperStack::MergePolicies::FullMergePolicy setup_layers default_name = self.class.default_config_file_base_name describes_application config_file_base_name: default_name, app_name: default_name end
Public Instance Methods
include_env_layer(filter = nil, priority = 70)
click to toggle source
# File lib/stacked_config/orchestrator.rb, line 29 def include_env_layer(filter = nil, priority = 70) @env_layer = StackedConfig::Layers::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)
click to toggle source
# File lib/stacked_config/orchestrator.rb, line 36 def include_gem_layer_for(gem_name, priority = 30) gem_layer = StackedConfig::Layers::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)
click to toggle source
# File lib/stacked_config/orchestrator.rb, line 22 def include_project_layer(file_or_directory, project_file_basename=nil, priority = 65) @project_layer = StackedConfig::Layers::ProjectLayer.new file_or_directory, project_file_basename project_layer.name = 'Project level' project_layer.priority = priority self << project_layer end
Private Instance Methods
setup_layer(class_type, name, priority)
click to toggle source
# File lib/stacked_config/orchestrator.rb, line 73 def setup_layer(class_type, name, priority) layer = class_type.new layer.name = name layer.priority = priority self << layer layer end
setup_layers()
click to toggle source
# File lib/stacked_config/orchestrator.rb, line 47 def setup_layers # The command line level. @command_line_layer = setup_layer StackedConfig::Layers::CommandLineLayer, 'Command line configuration level', 100 # The system level @system_layer = setup_layer StackedConfig::Layers::SystemLayer, 'System-wide configuration level', 10 # The executable gem level @executable_gem_layer = setup_layer StackedConfig::Layers::ExecutableGemLayer, 'Gem associated to the executable running configuration level', 20 # The global level @global_layer = setup_layer StackedConfig::Layers::GlobalLayer, 'Global configuration level', 40 # The user level @user_layer = setup_layer StackedConfig::Layers::UserLayer, 'User configuration level', 50 # The specifically provided config file level @provided_config_file_layer = setup_layer StackedConfig::Layers::ProvidedConfigFileLayer, 'Specific config file configuration level', 60 # The layer to write something override_layer = setup_layer SuperStack::Layer, 'Overridden configuration level', 1000 self.write_layer = override_layer reload_layers end