wlxml: ElementNode.getClassHierarchy
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Fri, 14 Mar 2014 12:00:13 +0000 (13:00 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 5 May 2014 11:09:14 +0000 (13:09 +0200)
src/wlxml/wlxml.js
src/wlxml/wlxml.test.js

index 5194c19..0505116 100644 (file)
@@ -72,6 +72,9 @@ $.extend(WLXMLElementNode.prototype, WLXMLDocumentNodeMethods, smartxml.ElementN
     getClass: function() {
         return this.getAttr('class') || '';
     },
     getClass: function() {
         return this.getAttr('class') || '';
     },
+    getClassHierarchy: function() {
+        return getClassLists(this.getClass());
+    },
     setClass: function(klass) {
         if(klass !== this.klass) {
             installObject(this, klass);
     setClass: function(klass) {
         if(klass !== this.klass) {
             installObject(this, klass);
@@ -384,7 +387,8 @@ return {
         return this.WLXMLDocumentFromXML(xml).root;
     },
 
         return this.WLXMLDocumentFromXML(xml).root;
     },
 
-    WLXMLDocument: WLXMLDocument
+    WLXMLDocument: WLXMLDocument,
+    getClassHierarchy: getClassLists
 };
 
 });
\ No newline at end of file
 };
 
 });
\ No newline at end of file
index c37b21f..9904154 100644 (file)
@@ -27,6 +27,11 @@ describe('WLXMLDocument', function() {
             expect(node.getClass()).to.equal('class.subclass');
         });
 
             expect(node.getClass()).to.equal('class.subclass');
         });
 
+        it('returns its class hierarchy', function() {
+            var node = nodeFromXML('<div class="a.b.c"></div>');
+            expect(node.getClassHierarchy()).to.eql(['', 'a', 'a.b', 'a.b.c']);
+        });
+
         it('returns unregistered attributes', function() {
             var testClasses = {
                     'testClass': {
         it('returns unregistered attributes', function() {
             var testClasses = {
                     'testClass': {