Class: Oxidized::CSV
Instance Method Summary collapse
-
#initialize ⇒ CSV
constructor
A new instance of CSV.
- #load(_node_want = nil) ⇒ Object
- #setup ⇒ Object
Methods inherited from Source
#map_group, #map_model, #node_var_interpolate
Constructor Details
Instance Method Details
#load(_node_want = nil) ⇒ Object
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 |
# File 'lib/oxidized/source/csv.rb', line 21 def load(_node_want = nil) nodes = [] open_file.each_line do |line| next if line =~ /^\s*#/ data = line.chomp.split(@cfg.delimiter, -1) next if data.empty? # map node parameters keys = {} @cfg.map.each do |key, position| keys[key.to_sym] = node_var_interpolate data[position] end keys[:model] = map_model keys[:model] if keys.has_key? :model keys[:group] = map_group keys[:group] if keys.has_key? :group # map node specific vars vars = {} @cfg.vars_map.each do |key, position| vars[key.to_sym] = node_var_interpolate data[position] end keys[:vars] = vars unless vars.empty? nodes << keys end nodes end |
#setup ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/oxidized/source/csv.rb', line 8 def setup if @cfg.empty? Oxidized.asetus.user.source.csv.file = File.join(Config::ROOT, 'router.db') Oxidized.asetus.user.source.csv.delimiter = /:/ Oxidized.asetus.user.source.csv.map.name = 0 Oxidized.asetus.user.source.csv.map.model = 1 Oxidized.asetus.user.source.csv.gpg = false Oxidized.asetus.save :user raise NoConfig, 'no source csv config, edit ~/.config/oxidized/config' end require 'gpgme' if @cfg.gpg? end |