blob: 9b93d9100c33636a6b314ba76c72ec858d88ad68 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
module Oxidized
require 'ostruct'
require 'yaml'
class Config < OpenStruct
require 'oxidized/config/defaults'
# @param file [string] configuration file location
def initialize file=File.join(Config::Root, 'config')
super()
@file = file.to_s
end
# load config from file or bootstrap with built-ins
def load
if File.exists? @file
cfg = YAML.load_file @file
marshal_load self.to_h.merge(cfg)
else
save
end
end
def defaults
require 'oxidized/config/bootstrap'
end
# save config to file
def save
File.write @file, YAML.dump(marshal_dump)
end
end
CFG = Config.new
CFG.defaults
CFG.load
Log.file = CFG.log if CFG.log
Log.level = Logger::INFO unless CFG.debug
end
|