for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
module Hyalite::DOM
class Element
include Native
include Node
alias_native :set_attribute, :setAttribute
alias_native :get_attribute, :getAttribute
alias_native :remove_attribute, :removeAttribute
alias_native :tag_name, :tagName
def element?
true
end
def input_type
`self.native.type`
def [](prop_name)
`self.native[#{prop_name}]`
def add_class(name)
`self.native.classList.add(name)`
self
def class_names
Array.new `self.native.classList`
def attributes
@attributes ||= Attributes.new(self)
def text
`self.native.textContent`
def text=(text)
`self.native.textContent = text`
def style(hash)
hash.each do |key, value|
`self.native.style[key] = value`
def inner_html
`self.native.innerHTML`
def inner_html=(html)
`self.native.innerHTML = html`
def inner_dom=(dom)
clear
self << dom
def document
$document
def to_s
`self.native.toString()`
def self.create(tag)
$document.create_element(tag)
class Attributes
def initialize(element)
@element = element
def [](name)
@element.get_attribute(name)
def []=(name, value)
@element.set_attribute(name, value)
def remove(name)
@element.remove_attribute(name)