for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
module Hyalite::DOM
module Node
def self.create(node)
@classes ||= [nil, Element, nil, Text, nil, nil, nil, nil, nil, Document, nil, nil]
if klass = @classes[`node.nodeType`]
==
=
klass.new(node)
else
raise ArgumentError, 'cannot instantiate a non derived Node object'
end
def document?
false
def element?
def text?
def node_name
`self.native.tagName`
def <<(child)
`self.native.appendChild(child.native)`
def clear
%x(
var len = self.native.childNodes.length;
for (var i = 0; i < len; i++) {
self.native.childNodes[0].remove();
}
)
def parent
if parent = `self.native.parentNode`
Node.create(parent)
def children
Collection.new `self.native.childNodes`
def next_sibling
sib = `self.native.nextSibling`
Node.create(sib) if sib
def on(event, &block)
`self.native.addEventListener(event, block)`