diff options
Diffstat (limited to 'lib/oxidized/config/core.rb')
-rw-r--r-- | lib/oxidized/config/core.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/oxidized/config/core.rb b/lib/oxidized/config/core.rb new file mode 100644 index 0000000..6c91920 --- /dev/null +++ b/lib/oxidized/config/core.rb @@ -0,0 +1,28 @@ +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 + marshal_load YAML.load_file @file + else + require 'oxidized/config/bootstrap' + end + end + # save config to file + def save + File.write @file, YAML.dump(marshal_dump) + end + end + CFG = Config.new + CFG.load + Log.file = CFG.log if CFG.log + Log.level = Logger::INFO unless CFG.debug +end |