Class: EasySettings
- Inherits:
-
Object
- Object
- EasySettings
- Defined in:
- lib/easy-settings.rb,
lib/easy-settings/version.rb
Defined Under Namespace
Classes: CertificateManagerSource, Coercion, EnvSource, PathSource, Struct, YamlSource
Constant Summary collapse
- VERSION =
"2.0.2"
Instance Method Summary collapse
-
#initialize(sources: [], fail_on_missing: true) ⇒ EasySettings
constructor
A new instance of EasySettings.
- #method_missing(method_name, *args) ⇒ Object
- #reload! ⇒ Object
Constructor Details
#initialize(sources: [], fail_on_missing: true) ⇒ EasySettings
Returns a new instance of EasySettings.
14 15 16 17 18 |
# File 'lib/easy-settings.rb', line 14 def initialize(sources: [], fail_on_missing: true) @sources = sources @fail_on_missing = fail_on_missing reload! end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/easy-settings.rb', line 29 def method_missing(method_name, *args) @data.send(method_name, *args) rescue EasySettings::Struct::UnknownPropertyError => e return unless @fail_on_missing raise e end |
Instance Method Details
#reload! ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/easy-settings.rb', line 20 def reload! config = {} @sources.each do |source| data = source.load config.deep_merge!(data) end @data = EasySettings::Struct.import(config) end |