Class: ConfigManager::CombinedConfiguration
- Inherits:
-
Configuration
- Object
- Configuration
- ConfigManager::CombinedConfiguration
- Defined in:
- lib/configmanager/combined_configuration.rb
Overview
A configuration class that can merge multiple configuration trees into a single configuration tree. Each addition, overwrites any properties that already existed.
Instance Method Summary collapse
-
#add_configuration(name, configuration) ⇒ NilClass
Adds a configuration to be merged into this configuration.
-
#get_configuration(name) ⇒ ConfigManager::Configuration
Get the configuration identified by the specified name.
-
#initialize(options = {}) ⇒ CombinedConfiguration
constructor
Creates a new empty combined configuration.
Methods inherited from Configuration
#add_properties, #add_property, #get_property, #has_property?
Constructor Details
#initialize(options = {}) ⇒ CombinedConfiguration
Creates a new empty combined configuration.
19 20 21 22 23 |
# File 'lib/configmanager/combined_configuration.rb', line 19 def initialize( = {}) super @configurations = {} end |
Instance Method Details
#add_configuration(name, configuration) ⇒ NilClass
Adds a configuration to be merged into this configuration. All existing properties are overwritten.
31 32 33 34 35 36 37 |
# File 'lib/configmanager/combined_configuration.rb', line 31 def add_configuration(name, configuration) raise ConfigManager::KeyError.new("Cannot add - Configuration '#{name}' already exists!") if @configurations.has_key?(name) @configurations[name] = configuration merge_configuration(configuration) nil end |
#get_configuration(name) ⇒ ConfigManager::Configuration
Get the configuration identified by the specified name. Raises an exception if the configuration does not exist. Modifying the returned configuration does not update this combined configuration.
45 46 47 48 |
# File 'lib/configmanager/combined_configuration.rb', line 45 def get_configuration(name) raise ConfigManager::PropertyNotFoundError("Cannot get - Configuration '#{name}' does not exist!") unless @configurations.has_key?(name) @configurations[name] end |