Class: Oxidized::Source::CSV
- Inherits:
-
Oxidized::Source
- Object
- Oxidized::Source
- Oxidized::Source::CSV
- Defined in:
- lib/oxidized/source/csv.rb
Instance Method Summary collapse
-
#initialize ⇒ CSV
constructor
A new instance of CSV.
- #load(_node_want = nil) ⇒ Object
- #setup ⇒ Object
Constructor Details
Instance Method Details
#load(_node_want = nil) ⇒ Object
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 52 53 54 55 56 57 58 |
# File 'lib/oxidized/source/csv.rb', line 27 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_s] = node_var_interpolate data[position] end keys[:vars] = vars unless vars.empty? keys = Oxidized.hooks.source_node_transform(node: keys, node_raw: data, context: self) next if keys.nil? nodes << keys end nodes end |
#setup ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/oxidized/source/csv.rb', line 9 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 #{Oxidized::Config.configfile}" end require 'gpgme' if @cfg.gpg? # map.name is mandatory return if @cfg.map.has_key?('name') raise InvalidConfig, "map/name is a mandatory source attribute, edit #{Oxidized::Config.configfile}" end |