Method: Dacs::AppConfig#initialize

Defined in:
lib/dacs/app_config.rb

#initializeAppConfig

Returns a new instance of AppConfig.



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/dacs/app_config.rb', line 99

def initialize
  raise "You must initialize with Dacs::AppConfig.init!()" unless @@options
  @app_name     = @@options[:app_name]
  @config_path  = @@options[:config_path]
  @logger       = @@options[:logger]
  @environment  = @@options[:environment]
  @defaults     = self.class.schema.defaults 
  @system       = @@options.fetch(:system){Kernel}
  find_or_create_config_file!

  defaults_source = DefaultSource.new(@defaults)
  file_source     = FileSource.new(config_path, @environment)
  env_source      = EnvironmentSource.new(env_var_prefix)
  sources         = []
  sources    << env_source
  sources    << file_source if file_source.readable?
  sources    << defaults_source
  load_values!(self.class.schema, *sources)
  verify_no_missing_required_values!
end