module Hyalite::DOM::Node

Attributes

native[R]

Public Class Methods

create(node) click to toggle source
# File lib/hyalite/dom/node.rb, line 7
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
end

Public Instance Methods

<<(child) click to toggle source
# File lib/hyalite/dom/node.rb, line 37
def <<(child)
  `self.native.appendChild(child.native)`
end
==(other) click to toggle source
# File lib/hyalite/dom/node.rb, line 69
def ==(other)
  `self.native === other.native`
end
attr(name) click to toggle source
# File lib/hyalite/dom/node.rb, line 29
def attr(name)
  `self.native[name]`
end
children() click to toggle source
# File lib/hyalite/dom/node.rb, line 56
def children
  Collection.new `self.native.childNodes`
end
clear() click to toggle source
# File lib/hyalite/dom/node.rb, line 41
def clear
  %x(
    var len = self.native.childNodes.length;
    for (var i = 0; i < len; i++) {
      self.native.childNodes[0].remove();
    }
  )
end
document?() click to toggle source
# File lib/hyalite/dom/node.rb, line 17
def document?
  false
end
element?() click to toggle source
# File lib/hyalite/dom/node.rb, line 21
def element?
  false
end
next_sibling() click to toggle source
# File lib/hyalite/dom/node.rb, line 64
def next_sibling
  sib = `self.native.nextSibling`
  Node.create(sib) if sib
end
node_name() click to toggle source
# File lib/hyalite/dom/node.rb, line 33
def node_name
  `self.native.tagName`
end
parent() click to toggle source
# File lib/hyalite/dom/node.rb, line 50
def parent
  if parent = `self.native.parentNode`
    Node.create(parent)
  end
end
remove() click to toggle source
# File lib/hyalite/dom/node.rb, line 60
def remove
  `self.native.remove()`
end
text?() click to toggle source
# File lib/hyalite/dom/node.rb, line 25
def text?
  false
end