diff options
Diffstat (limited to 'libs/surfaces/mackie/scripts/transform.rb')
-rw-r--r-- | libs/surfaces/mackie/scripts/transform.rb | 26 |
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 |