summaryrefslogtreecommitdiff
path: root/lib/rexml/node.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rexml/node.rb')
-rw-r--r--lib/rexml/node.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/rexml/node.rb b/lib/rexml/node.rb
new file mode 100644
index 0000000000..41d9eee43b
--- /dev/null
+++ b/lib/rexml/node.rb
@@ -0,0 +1,35 @@
+require "rexml/parseexception"
+
+module REXML
+ # Represents a node in the tree. Nodes are never encountered except as
+ # superclasses of other objects. Nodes have siblings.
+ module Node
+ # @return the next sibling (nil if unset)
+ def next_sibling_node
+ return nil if @parent.nil?
+ @parent[ @parent.index(self) + 1 ]
+ end
+
+ # @return the previous sibling (nil if unset)
+ def previous_sibling_node
+ return nil if @parent.nil?
+ ind = @parent.index(self)
+ return nil if ind == 0
+ @parent[ ind - 1 ]
+ end
+
+ def to_s indent=-1
+ rv = ""
+ write rv,indent
+ rv
+ end
+
+ def indent to, ind
+ to << " "*ind unless ind<1
+ end
+
+ def parent?
+ false;
+ end
+ end
+end