diff options
author | Saku Ytti <saku@ytti.fi> | 2014-04-14 16:28:23 +0300 |
---|---|---|
committer | Saku Ytti <saku@ytti.fi> | 2014-04-14 16:28:23 +0300 |
commit | 57a8f4bc04b4f87ad0d7028dcbf29b96d49eaffd (patch) | |
tree | 82567c791b0114e62fa3b978eb2bb95733d6488b /lib/oxidized/source/csv.rb | |
parent | 1a1794b2b3ac99764852546c550fd7988f84c37b (diff) |
Use 'asetus' for configuration files
Main benefits
a) we get support for system wide configs
b) we don't use symbols in config file, they're confusing to
non-rubyist
Diffstat (limited to 'lib/oxidized/source/csv.rb')
-rw-r--r-- | lib/oxidized/source/csv.rb | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/lib/oxidized/source/csv.rb b/lib/oxidized/source/csv.rb index cf73fc8..9d291c7 100644 --- a/lib/oxidized/source/csv.rb +++ b/lib/oxidized/source/csv.rb @@ -1,31 +1,28 @@ module Oxidized class CSV < Source def initialize - @cfg = CFG.source[:csv] + @cfg = CFG.source.csv super end def setup - if not @cfg - CFG.source[:csv] = { - :file => File.join(Config::Root, 'router.db'), - :delimiter => /:/, - :map => { - :name => 0, - :model => 1, - } - } - CFG.save + if @cfg.empty? + CFGS.user.source.csv.file = File.join(Config::Root, 'router.db') + CFGS.user.source.csv.delimiter = /:/ + CFGS.user.source.csv.map.name = 0 + CFGS.user.source.csv.map.model = 1 + CFGS.save :user + raise NoConfig, 'no source csv config, edit ~/.config/oxidized/config' end end def load nodes = [] - open(@cfg[:file]).each_line do |line| - data = line.chomp.split @cfg[:delimiter] + open(@cfg.file).each_line do |line| + data = line.chomp.split @cfg.delimiter keys = {} - @cfg[:map].each do |key, position| - keys[key] = data[position] + @cfg.map.each do |key, position| + keys[key.to_sym] = data[position] end keys[:model] = map_model keys[:model] if keys.key? :model nodes << keys |