Sha256: 91558eebef9e4a0974f67aec44fa503fdd6d6e41828680a7512ef12bbf854ab3
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
module Browser; module DOM class NodeSet attr_reader :document def initialize(document, list = []) @document = document @literal = [] list.each {|el| if NodeSet === el @literal.concat(el.to_a) else @literal.push DOM(Native.convert(el)) end } end def method_missing(name, *args, &block) unless @literal.respond_to? name each {|el| el.__send__(name, *args, &block) } return self end result = @literal.__send__ name, *args, &block if `result === #@literal` self elsif Array === result NodeSet.new(@document, result) else result end end def dup NodeSet.new(document, to_ary.dup) end def filter(expression) NodeSet.new(document, @literal.select { |node| node.matches?(expression) }) end def after(node) last.after node end def at(path) raise NotImplementedError end def at_css(*rules) raise NotImplementedError end def at_xpath(*paths) raise NotImplementedError end def before first.before end def children result = NodeSet.new(document) each { |n| result.concat(n.children) } result end def css(*paths) raise NotImplementedError end def search(*what) map { |n| n.search(*what) }.flatten.uniq end def inspect "#<DOM::NodeSet: #{@literal.inspect[1 .. -2]}" end end end; end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
opal-browser-0.1.0.beta1 | opal/browser/dom/node_set.rb |