summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/scripts/transform.rb
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/mackie/scripts/transform.rb')
-rw-r--r--libs/surfaces/mackie/scripts/transform.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/scripts/transform.rb b/libs/surfaces/mackie/scripts/transform.rb
new file mode 100644
index 0000000000..e0221e188b
--- /dev/null
+++ b/libs/surfaces/mackie/scripts/transform.rb
@@ -0,0 +1,26 @@
+class ElementHandler
+
+ def apply( anElement )
+ anElement.each {|e| handle(e)} if anElement
+ end
+
+ def handle( aNode )
+ if aNode.kind_of? REXML::Text
+ handleTextNode(aNode)
+ elsif aNode.kind_of? REXML::Element
+ handle_element aNode
+ else
+ return #ignore comments and processing instructions
+ end
+ end
+
+ def handle_element( anElement )
+ handler_method = "handle_" + anElement.name.tr("-","_")
+ if self.respond_to? handler_method
+ self.send(handler_method, anElement)
+ else
+ default_handler(anElement)
+ end
+ end
+
+end