diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/html-generator.js | 2 | ||||
| -rw-r--r-- | lib/html-paths.js | 29 |
2 files changed, 25 insertions, 6 deletions
diff --git a/lib/html-generator.js b/lib/html-generator.js index 3705767..62c58a8 100644 --- a/lib/html-generator.js +++ b/lib/html-generator.js @@ -47,7 +47,7 @@ function HtmlGenerator() { } function stylePartMatchesStackElement(stylePart, stackElement) { - return stackElement && stylePart.tagName === stackElement.tagName; + return stackElement && stylePart.matchesElement(stackElement); } function open(htmlPathElement) { diff --git a/lib/html-paths.js b/lib/html-paths.js index 1d3b1f4..9ecb6dd 100644 --- a/lib/html-paths.js +++ b/lib/html-paths.js @@ -20,10 +20,29 @@ function elements(elementStyles) { function element(tagName, attributes, options) { options = options || {}; - return { - tagName: tagName, - attributes: attributes || {}, - fresh: options.fresh - }; + return new Element(tagName, attributes, options); } +function Element(tagName, attributes, options) { + var tagNames = {}; + if (_.isArray(tagName)) { + tagName.forEach(function(tagName) { + tagNames[tagName] = true; + }); + tagName = tagName[0]; + } else { + tagNames[tagName] = true; + } + + this.tagName = tagName; + this.tagNames = tagNames; + this.attributes = attributes || {}; + this.fresh = options.fresh; +} + +Element.prototype.matchesElement = function(element) { + return this.tagNames[element.tagName]; +} + + + |
