summaryrefslogtreecommitdiff
path: root/lib/oxidized/nodes.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/nodes.rb')
-rw-r--r--lib/oxidized/nodes.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/oxidized/nodes.rb b/lib/oxidized/nodes.rb
new file mode 100644
index 0000000..467d3a0
--- /dev/null
+++ b/lib/oxidized/nodes.rb
@@ -0,0 +1,36 @@
+module Oxidized
+ require 'oxidized/node'
+ class Nodes < Array
+ attr_accessor :source
+ alias :del :delete
+ def initialize *args
+ super
+ load if args.empty?
+ end
+ def load
+ new = []
+ @source = CFG.source[:default]
+ Oxidized.mgr.source = @source
+ Oxidized.mgr.source[@source].new.load.each do |node|
+ new.push Node.new node
+ end
+ replace new
+ end
+ def list
+ self
+ end
+ # @param node [String] name of the node inserted into nodes array
+ def put node
+ unshift node
+ end
+ # @param node [String] name of the node moved into the head of array
+ def top node
+ n = del node
+ put n if n
+ end
+ # @return [String] node from the head of the array
+ def get
+ (self << shift).last
+ end
+ end
+end