20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/app-config.rb', line 20
def init( approot: nil, configdir: 'config', filename: 'cfg', env: ( ENV['APP_ENV'] || 'development' ) )
raise NoMethodError.new('Config already defined.') if defined?( ::Cfg )
root = Pathname( approot || __dir__ ).expand_path.to_s.freeze
env = env.to_sym.freeze
config = {}
configfile = "#{ root }/#{ configdir }/#{ filename }.#{ env }.yml"
amqp_routesfile = "#{ root }/#{ configdir }/amqp.#{ env }.yml"
http_routesfile = "#{ root }/#{ configdir }/http.#{ env }.yml"
Kernel.const_set('Cfg', config)
config.merge!( YAML.ext_load_file( configfile ).keys_to_symbols ) rescue nil
$0 += "[ #{ config.app.id } ]" if config.app? && config.app.id?
config[ :app ] ||= { id: $0 }
config.app[ :log ] ||= ENV['APP_LOG']
config.merge!({
root: root,
env: env,
configdir: "#{ root }/#{ configdir }",
amqproutes: File.exist?( amqp_routesfile ) ? YAML.ext_load_file( amqp_routesfile ).keys_to_symbols : {},
httproutes: File.exist?( http_routesfile ) ? YAML.ext_load_file( http_routesfile ).keys_to_symbols : {}
})
config[:loglevel] =
begin
Kernel.const_get("Logger::#{
( ENV['LOG_LEVEL'] || config.app.loglevel || ( env == :production ? :WARN : :DEBUG ) ).to_s.upcase
}")
rescue
Logger::DEBUG
end
config
end
|