summaryrefslogtreecommitdiff
path: root/lib/oxidized/source/csv.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/source/csv.rb')
-rw-r--r--lib/oxidized/source/csv.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/oxidized/source/csv.rb b/lib/oxidized/source/csv.rb
new file mode 100644
index 0000000..6b08b18
--- /dev/null
+++ b/lib/oxidized/source/csv.rb
@@ -0,0 +1,37 @@
+module Oxidized
+class CSV < Source
+ def initialize
+ @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,
+ }
+ }
+ end
+ CFG.save
+ end
+
+ def load
+ nodes = []
+ open(@cfg[:file]).each_line do |line|
+ data = line.chomp.split @cfg[:delimiter]
+ keys = {}
+ @cfg[:map].each do |key, position|
+ keys[key] = data[position]
+ end
+ keys[:model] = map_model keys[:model] if keys.key? :model
+ nodes << keys
+ end
+ nodes
+ end
+
+end
+end