Class: Oxidized::CSV
Instance Method Summary collapse
-
#initialize ⇒ CSV
constructor
A new instance of CSV.
- #load ⇒ Object
- #setup ⇒ Object
Methods inherited from Source
#map_model, #node_var_interpolate
Constructor Details
Instance Method Details
#load ⇒ 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 48 49 50 51 |
# File 'lib/oxidized/source/csv.rb', line 21 def load nodes = [] file = File.(@cfg.file) file = if @cfg.gpg? crypto = GPGME::Crypto.new password: @cfg.gpg_password crypto.decrypt(file).to_s else open(file) end file.each_line do |line| next if line.match(/^\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.key? :model # 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 |