Module: CmdTools::Config
- Extended by:
- RubyPatch::AutoLoad
- Defined in:
- lib/cmd_tools/config.rb
Constant Summary collapse
- CONFIG_DIR =
File.join(ENV['HOME'], '.config/cmd_tools')
- CONFIG_FILE =
File.join(CONFIG_DIR, 'config.yaml')
- CONFIG_DEFAULT =
{ 'emacs' => ENV['ALTERNATE_EDITOR'] || 'emacs', 'emacs_window_systems' => %w[x ns mac], }
Class Method Summary collapse
-
.load ⇒ Object
(Re)load config file.
Class Method Details
.load ⇒ Object
(Re)load config file.
17 18 19 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 |
# File 'lib/cmd_tools/config.rb', line 17 def self.load need_dump = false @config = if File.readable?(CONFIG_FILE) && File.size(CONFeIG_FILE) > 0 config_from_file = YAML.load_file(CONFIG_FILE) config = CONFIG_DEFAULT.merge(config_from_file) need_dump = config_from_file.size != CONFIG_DEFAULT.size config else need_dump = true CONFIG_DEFAULT end if need_dump FileUtils.mkdir_p(CONFIG_DIR) open(CONFIG_FILE, 'w'){|io| io.write(@config.to_yaml) io.flush } end @config.each{|name, val| var = "@#{name}" instance_variable_set(var, val) eval " def self.\#{name}\n \#{var}\n end\n EOS\n }\n\n self\nend\n" |