Class: DynamicConfiguration::Config
- Inherits:
-
BlankSlate
- Object
- BlankSlate
- DynamicConfiguration::Config
show all
- Defined in:
- lib/dynamic_configuration.rb
Instance Method Summary
collapse
Constructor Details
#initialize(const_name, config_directory) ⇒ Config
Returns a new instance of Config.
97
98
99
|
# File 'lib/dynamic_configuration.rb', line 97
def initialize(const_name, config_directory)
@const_name, @config_directory = const_name, config_directory
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
116
117
118
119
120
121
122
|
# File 'lib/dynamic_configuration.rb', line 116
def method_missing(name, *args, &block)
unless @settings && @settings[name]
raise MissingGroupException.new("No configuration defined for a '#{name}' submodule")
end
@settings[name]
end
|
Instance Method Details
#load_module(file_pathname) ⇒ Object
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/dynamic_configuration.rb', line 101
def load_module(file_pathname)
mod_name = file_pathname.basename.to_s[0..-4]
@modules ||= {}
@modules[mod_name.intern] ||= Group.new(@config_directory)
@modules[mod_name.intern].instance_eval(::IO.read(file_pathname.to_s))
@settings ||= {}
@settings[mod_name.intern] ||= Settings.new(@const_name, mod_name, @modules[mod_name.intern].settings)
end
|
#respond_to_missing?(name, include_private = false) ⇒ Boolean
112
113
114
|
# File 'lib/dynamic_configuration.rb', line 112
def respond_to_missing?(name, include_private=false)
@settings && @settings[name]
end
|