Class: EasySettings

Inherits:
Object
  • Object
show all
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

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