Class: Rdm::ConfigManager
- Inherits:
-
Object
- Object
- Rdm::ConfigManager
show all
- Defined in:
- lib/rdm/yml_config/config_manager.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth) ⇒ Object
31
32
33
34
|
# File 'lib/rdm/yml_config/config_manager.rb', line 31
def method_missing(meth)
config.keys.include?(meth) ? Rdm::Utils::Ostruct.to_recursive_ostruct(config).send(meth) :
(raise ArgumentError, ":#{meth} configuration was not defined for current package. Add `import '#{meth}'` to your Package.rb file")
end
|
Class Method Details
.instance ⇒ Object
20
21
22
|
# File 'lib/rdm/yml_config/config_manager.rb', line 20
def instance
@instance ||= new
end
|
.load_config(envs:, path_to_config:) ⇒ Object
5
6
7
8
9
10
|
# File 'lib/rdm/yml_config/config_manager.rb', line 5
def load_config(envs:, path_to_config:)
new_config = Rdm::ConfigCaster.new(envs).cast(YAML.load(File.read(path_to_config)))
validate_params!(new_config, envs)
instance.config.merge! new_config
end
|
.method_missing(meth, *args, &block) ⇒ Object
16
17
18
|
# File 'lib/rdm/yml_config/config_manager.rb', line 16
def method_missing(meth, *args, &block)
instance.send(meth)
end
|
.reset! ⇒ Object
12
13
14
|
# File 'lib/rdm/yml_config/config_manager.rb', line 12
def reset!
instance.config.clear
end
|
Instance Method Details
#config ⇒ Object
36
37
38
|
# File 'lib/rdm/yml_config/config_manager.rb', line 36
def config
@config ||= {}
end
|