More CSSPool Fun
2007-11-15 @ 01:08I just finished up a matching method on CSSPool. So you can pass an hpricot node to a selector AST, and determine whether the node matches or not.
Lets say for example that you had an html document and a css document, and you wanted to know what selectors matched a given hpricot node, you could do something like this:
class DH < CSS::SAC::DocumentHandler def initialize(node) @node = node end def start_selector(selectors) selectors.each { |sel| p sel if sel =~ @node } end end parser = CSS::SAC::Parser.new(DH.new(some_hpricot_node)) parser.parse(File.read(ARGV[0]))
I think I will probably release what I have in trunk soon. I will probably add a new document handler for 0.2.0 that collects all selectors and properties together, and give a nice interface for finding styles that apply to an hpricot node.